TypeScript에서는 유형의 변수가 다음을 준수하는지 확인하려고 할 때 일반적인 딜레마가 발생합니다. 런타임에 지정된 인터페이스. 다음 코드를 고려해보세요.
interface A { member: string; } var a: any = { member: "foobar" }; if (a instanceof A) alert(a.member);
여기서 TypeScript 플레이그라운드는 마지막 줄에서 오류를 생성하여 현재 범위에서 이름 A가 정의되지 않았다고 주장합니다. 그러나 A가 명확하게 정의되어 있으므로 이는 올바르지 않습니다. 이 문제를 해결하려면 생성된 JavaScript에 인터페이스가 표현되지 않으므로 런타임 유형 검사가 불가능하다는 점을 이해하는 것이 중요합니다.
이 딜레마는 인터페이스가 정의된 존재가 없는 JavaScript의 동적 특성에서 비롯됩니다. 결과적으로 질문이 생깁니다. TypeScript에서 인터페이스의 유형을 검사할 수 있는 방법이 있습니까?
플레이어플레이어의 자동 완성 기능은 실제로 Implements라는 메서드를 드러내므로 이를 활용하는 방법이 궁금합니다. 사용자 정의 유형 가드가 작동하는 위치는 다음과 같습니다.
interface A { member: string; } function instanceOfA(object: any): object is A { return 'member' in object; } var a: any = { member: "foobar" }; if (instanceOfA(a)) { alert(a.member); }
이 접근 방식을 사용하면 인스턴스화할 필요 없이 인터페이스 유형을 확인할 수 있습니다. 그러나 더 복잡한 경우에는 판별자를 사용하여 자체 판별자를 관리하고 중복이 발생하지 않도록 하는 것이 좋습니다.
위 내용은 TypeScript에서 런타임 인터페이스 유형 검사를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!