Supponiamo che ci sia un file di battitura per la libreria X che include alcune interfacce.C'è un modo per "estrarre" il tipo di proprietà dell'interfaccia TypeScript?
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
Per lavorare con questa libreria devo passare intorno ad un oggetto che è esattamente lo stesso tipo I2.y
. Posso naturalmente creare un'interfaccia identica nei miei file di origine:
interface MyInterface {
a: I1,
b: I1,
c: I1
}
let myVar: MyInterface;
ma poi ho ottenere l'onere di tenerlo al passo con quello dalla biblioteca, inoltre può essere molto grande e il risultato in molte duplicazione del codice .
Pertanto, esiste un modo per "estrarre" il tipo di questa proprietà specifica dell'interfaccia? Qualcosa di simile a let myVar: typeof I2.y
(che non funziona e genera l'errore "Impossibile trovare il nome I2"). Grazie in anticipo.
Edit: dopo aver giocato un po 'in TS Playground ho notato che seguente codice ottiene esattamente quello che voglio:
declare var x: I2;
let y: typeof x.y;
Tuttavia essa richiede una variabile ridondante x
da dichiarare. Sto cercando un modo per raggiungere questo obiettivo senza quella dichiarazione.
* che non funziona * - come si manifesta? Qual è il vero messaggio di errore che vedi? –
@BartekBanachewicz aggiornato –