いくつかのインターフェースを含むライブラリ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 Playgroundで少し遊んだ後、次のコードが私が望んでいることを正確に達成していることに気づきました:
declare var x: I2;
let y: typeof x.y;
ただし、冗長変数x
を宣言する必要があります。私はその宣言なしでこれを達成する方法を探しています。