내 프로젝트 중 하나에서 예기치 않은 행동을하고 있었으므로 문제가되는 가장 작은 예제로 문제를 해결했습니다. 나는 최신 타이프 라이터가 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'에 존재하지 않습니다. 내가 최고 두 개의 모듈의 인증 된 정의를 통해 교환 할 경우
나는 더 이상 내가 실제로 오류가 나는 IDE에서 실수를 한 표시 할 때 보여 드리고자합니다
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;
}
예상되는 오류를 얻을. 제 질문은 왜 첫 번째 예제가 나타나지만 두 번째 예제는 나타나지 않는 것입니까?
멋진 브렌든입니다. 그래도 컴파일러 오류처럼 보입니다. – basarat