일부 인터페이스를 포함하는 라이브러리 X에 대한 입력 파일이 있다고 가정 해 보겠습니다.
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
이 라이브러리로 작업하려면 .NET Framework와 정확히 동일한 유형의 객체를 전달해야합니다 I2.y
. 물론 소스 파일에 동일한 인터페이스를 만들 수 있습니다.
interface MyInterface {
a: I1,
b: I1,
c: I1
}
let myVar: MyInterface;
하지만 라이브러리에있는 파일로 최신 상태로 유지해야하는 부담이 있습니다. 게다가 매우 커져서 많은 코드 중복이 발생할 수 있습니다.
따라서 인터페이스의 특정 속성 유형을 "추출"할 수있는 방법이 있습니까? let myVar: typeof I2.y
(작동하지 않고 "이름 I2를 찾을 수 없음"오류가 발생 함) 유사 항목 입니다. 미리 감사드립니다.
편집 : TS 운동장에서 조금 플레이 한 후 다음 코드가 내가 원하는 것을 정확히 달성한다는 것을 알았습니다.
declare var x: I2;
let y: typeof x.y;
그러나 중복 변수 x
를 선언해야합니다. 나는 그 선언없이 이것을 달성하는 방법을 찾고 있습니다.