Tip uyumluluğu: Kayıt için
number
if (!(y instanceof Object)) {
console.log(typeof y)
}
baskılar nominal tipleme değil yapısal alt tipine dayanmaktadır.
interface IFoo { X: number }
interface IBar { X: number; Y: number }
IBar
IFoo
uzatır mı: Bu iki aşağıdaki arayüz tanımları dikkate dedi?
IBar
ile uyumlu mu? Evet. IFoo
ait
üye böylece herhangi IBar
IFoo
atayabilirsiniz, IBar
üyeden bir alt grubudur. Ama tersi çalışmaz:
var x: IFoo;
var y: IBar;
x = y // all good
y = x // type error, x has no Y member
boş bir arayüz olarak düşünmek eğer her türlü Object
ile uyumludur daktilo Bu şekilde. Bu şekilde, geçerli herhangi bir yazı tipi değerini Object
kabul eden işlevlere iletebilir ve Javascript kitaplarının yazıldığı şekilde iyi oynayabilirsiniz.
belgelerini ve en son paragrafı Alt Tür vs Assignment ile okumanızı öneririm.
Tamam, beklediğim bir açıklamadır (Object'e izomorf olan Bool adlı bir boş arabirime de bir bool atayabildiğimi fark ettikten sonra). Yapısal ve nominal değerlerini anlıyorum, ancak referans olmayan tiplere başvurmasını beklemiyordum. Sanırım bu sadece Nesnenin gerçekten boş bir ara yüzüne sahip olduğu (yani bir sayı veya ilkel dizeye yapamayacağım bir nesneye yapabileceğim şeyler göz önüne alındığında). – Roly
Açıklamadan memnun oldum, cevabı kabul ettim. Isırılmış çıkıyor çıkıyor çünkü sayı
Roly
Sanırım,
Roly