Farz edelim ki, başlangıçta farklı eleman türlerine özgü bir modele sahip olan bir JavaScript dizisine, sonra da sondaki tekrarlanan öğe türüne (türlerine) rastgele bir tekrar sayısına sahip olacağım.TypeScript: Farklı öğe türlerine sahip, ancak sabit uzunlukta olmayan bir JavaScript dizisi için nasıl bir tür bildirebilirim?
Bu JavaScript dizisiyle uyumlu olacak bir TypeScript türünü nasıl bildirebilirim?
interface A {
foo: Foo,
bar: Bar,
}
interface B {
baz: Baz
}
interface Bat {
// getArr(): [A, B, B, B], // tuple type puts types at specific indexes
// but only supports a fixed number of elements
// getArr(): Array<A | B>, // array type notation allows arbitrary number
// of elements but doesn't require them to be
// in specific positions
}
Düzenleme:
Ben mevcut JavaScript kodu sorunları tanımlamak için vanilya JavaScript kodu ile dış typescript bildirimleri kullanılarak deneme am, ayrıca netleştirmek için. Temsilin yanlış olabileceğini anlıyorum; Orijinal Javascript kodunun oluşturulmasında daha fazla bilgelik kullanılmış olsaydı, bu maceranın üzerine çıkmazdım.
Ayrıca diziler, listeler ve benzerleri de bu değil. Farklı türden elemanlar varsa, muhtemelen farklı koleksiyonlara isim veren bir nesne kullanmalısınız. – Pablo
TypeScript, dizilerde homojen olmayan türler için bazı desteklere sahiptir: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#333-tuple-types – rakslice
@rakslice Tuplelerin homojen olması gerekmez. Ama sonra tuples diziler değildir. – user2864740