Nehmen wir an, es gibt eine Typisierungsdatei für Bibliothek X, die einige Schnittstellen enthält.
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
Um mit dieser Bibliothek arbeiten zu können, muss ich ein Objekt übergeben, das genau vom gleichen Typ ist wie I2.y
. Ich kann natürlich eine identische Schnittstelle in meinen Quelldateien erstellen:
interface MyInterface {
a: I1,
b: I1,
c: I1
}
let myVar: MyInterface;
aber dann habe ich die Last, es mit dem aus der Bibliothek auf dem neuesten Stand zu halten, außerdem kann es sehr groß sein und zu viel Codeduplizierung führen.
Gibt es daher eine Möglichkeit, den Typ dieser spezifischen Eigenschaft der Schnittstelle zu "extrahieren"? Ähnliches wie let myVar: typeof I2.y
(was nicht funktioniert und zu dem Fehler "Name I2 kann nicht gefunden werden" führt). Danke im Voraus.
Bearbeiten : Nachdem ich ein bisschen in TS Playground gespielt habe, habe ich festgestellt, dass der folgende Code genau das erreicht, was ich will:
declare var x: I2;
let y: typeof x.y;
Es muss jedoch eine redundante Variable x
deklariert werden. Ich suche nach einem Weg, dies ohne diese Erklärung zu erreichen.