Looks to me that you need to split your compilation into two phases, one to generate soruce1 and soruce2, and another one to generate reference1 and reference2. The best way to do this is to generate a .d.ts from the first batch of files then reference that in your second compilation.
to generate sources.d.ts:
tsc --declaration --out soruces.js soruce1.ts source2.ts
now your files should look like:
///reference path=’sources.d.ts’
Class reference1{...};
///reference path=’source.s.ts’
Class reference2{...};
the second compilation would be:
tsc --out references.js reference1.ts reference2.ts
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…