プロジェクトの 1 つで予期しない動作が発生していたので、まだ問題がある最小の例にそれを分離しました。最新の TypeScript ビルド 0.9.1.1 を使用しています
module module2 {
export interface IAnimal {
colour:string;
}
}
module module1 {
export interface IInjector {
get(className:string):void;
}
}
module module1 {
export interface IInjector {
get(className: "module2.IAnimal"):module2.IAnimal;
}
class Injector implements module1.IInjector {
public get(className:string):any {
return {colour:"Blue"};
}
}
export var injector:IInjector = new Injector();
}
module module2 {
module1.injector.get("module2.IAnimal").surname;
}
予想されるエラー エラー TS2094 を生成します: プロパティ '姓' は型 'IAnimal' の値に存在しません。
上位 2 つのモジュール定義を入れ替えると、予想されるエラーが発生しなくなりました
module module1 {
export interface IInjector {
get(className:string):void;
}
}
module module2 {
export interface IAnimal {
colour:string;
}
}
module module1 {
export interface IInjector {
get(className: "module2.IAnimal"):module2.IAnimal;
}
class Injector implements module1.IInjector {
public get(className:string):any {
return {colour:"Blue"};
}
}
export var injector:IInjector = new Injector();
}
module module2 {
module1.injector.get("module2.IAnimal").surname;
}
IDE で間違いを犯したことを示すエラーが表示されるようにしたいと考えています。私の質問は、最初の例では表示されているのに、2 番目の例では表示されないのはなぜですか?