いくつかのインターフェースを含むライブラリXのためのタイプファイルがあるとしましょう。TypeScriptインターフェイスのプロパティの種類を「抽出する」方法はありますか?
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;
をその後私はさらにそれが非常に大きくなる可能性が、ライブラリーからの1と日付にそれを維持する負担を取得し、コードの重複の多くにつながる:私はもちろん、私のソースファイルで同じインターフェイスを作成することができます。
したがって、インタフェースのこの特定のプロパティのタイプを「抽出する」方法はありますか? let myVar: typeof I2.y
と似たようなもの(「名前I2を見つけることができません」というエラーが発生する)前もって感謝します。
編集:
declare var x: I2;
let y: typeof x.y;
それが宣言される冗長な変数x
が必要ですしかし:TS遊び場にビットを再生した後、私は次のコードは、私がしたい正確に何を達成していることに気づきました。私はその宣言なしでこれを達成する方法を探しています。
*うまくいかない* - どうやって表示されますか?実際に表示されるエラーメッセージは何ですか? –
@BartekBanachewiczが –