假设有一个库X的键入文件,其中包含一些接口。
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
为了使用该库,我需要传递与类型完全相同的对象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
声明一个冗余变量。我正在寻找一种无需声明即可实现这一目标的方法。