반응형
인터페이스에 대한 검사 인스턴스
다음 코드가 주어집니다.
module MyModule {
export interface IMyInterface {}
export interface IMyInterfaceA extends IMyInterface {}
export interface IMyInterfaceB extends IMyInterface {}
function(my: IMyInterface): void {
if (my instanceof IMyInterfaceA) {
// do something cool
}
}
}
"ImmyInterfaceA에서 이름을 찾을 수 없습니다." 오류가 발생합니다.이 상황을 처리하는 올바른 방법은 무엇입니까?
형식 정보가 컴파일된 JavaScript 코드로 변환되지 않으므로 인터페이스를 런타임에 확인할 수 없습니다.
특정 속성 또는 메서드를 확인하고 수행할 작업을 결정할 수 있습니다.
module MyModule {
export interface IMyInterface {
name: string;
age: number;
}
export interface IMyInterfaceA extends IMyInterface {
isWindowsUser: boolean;
}
export interface IMyInterfaceB extends IMyInterface {
}
export function doSomething(myValue: IMyInterface){
// check for property
if (myValue.hasOwnProperty('isWindowsUser')) {
// do something cool
}
}
}
TypeScript는 인터페이스에 오리 타이핑을 사용하므로 객체에 특정 멤버가 포함되어 있는지 확인해야 합니다.
if ((<IMyInterfaceA>my).someCoolMethodFromA) {
(<IMyInterfaceA>my).someCoolMethodFromA();
}
언급URL : https://stackoverflow.com/questions/31748277/instanceof-check-on-interface
반응형
'programing' 카테고리의 다른 글
가장 많이 사용되지 않는 데이터 시각화 (0) | 2023.06.11 |
---|---|
파이썬에서 16진수를 10진수로 변환하려면 어떻게 해야 합니까? (0) | 2023.06.11 |
pip을 사용하여 SciPy 및 NumPy 설치 (0) | 2023.06.11 |
사서함을 사용할 수 없습니다.서버 응답: 5.7.1 abc@xyz에 대해 릴레이할 수 없습니다.com (0) | 2023.06.11 |
max_input_message.htaccess로 인해 500개의 오류가 발생함 (0) | 2023.06.11 |