Farz edelim ki, X kitaplığı için bazı arayüzleri içeren bir yazma dosyası var.
interface I1 {
x: any;
}
interface I2 {
y: {
a: I1,
b: I1,
c: I1
}
z: any
}
Bu kitaplıkla çalışmak için, ile tamamen aynı tipte bir nesnenin etrafından dolaşmam gerekiyor I2.y
. Elbette kaynak dosyalarımda aynı arayüzü oluşturabilirim:
interface MyInterface {
a: I1,
b: I1,
c: I1
}
let myVar: MyInterface;
ama sonra onu kütüphaneden gelenle güncel tutma yükünü alıyorum, dahası çok büyük olabilir ve çok sayıda kod tekrarına neden olabilir.
Bu nedenle, arabirimin bu belirli özelliğinin türünü "ayıklamanın" herhangi bir yolu var mı? Şuna benzer bir şey let myVar: typeof I2.y
(işe yaramaz ve "I2 adı bulunamıyor" hatasıyla sonuçlanır). Şimdiden teşekkürler.
Düzenleme : TS Playground'da biraz oynadıktan sonra, aşağıdaki kodun tam olarak istediğimi başardığını fark ettim:
declare var x: I2;
let y: typeof x.y;
Bununla birlikte, x
beyan edilecek bir yedek değişkeni gerektirir . Bu beyan olmadan bunu başarmanın bir yolunu arıyorum.