typescript - Mendeklarasikan jumlah daftar yang tidak diketahui dalam alias tipe
Katakanlah saya memiliki sebuah fungsi yang mengembalikan sebuah daftar, yang berisi sejumlah daftar yang bervariasi, masing-masing berisi pertama sejumlah daftar yang bervariasi, dan kemudian sebuah objek tunggal sebagai anggota terakhir dari daftar tersebut.
Berikut beberapa contoh output:
output1 = [
[
[1, 2, 3],
{ x: 1, y: 2 }
],
[
[4, 5, 6],
{ x: 3, y: 4 }
],
[
[7, 8, 9],
{ x: 5, y: 6 }
]
];
output2 = [
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
// however many more lists there are
{ x: 1, y: 2 }
],
[
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
// however many more lists there are
{ x: 3, y: 4 }
],
// however many more lists there are
];
Isi dari daftar dapat bertipe any, tetapi setiap objek memiliki properti x dan y, masing-masing memiliki tipe number.
Bagaimana saya bisa membuat alias tipe yang menunjukkan ini dengan akurat dan spesifik?
Saat ini, inilah yang telah saya buat:
type Output = [
[
any[], // this is what I need help with
{ x: number, y: number }
][]
]
Jawaban #1
Struktur Anda tidak dirancang dengan baik, mengapa Anda menggunakan array sebagai struktur utama dan bukan objek?
Apakah Anda terjebak dengan struktur tersebut (misalnya: itu adalah hasil dari pustaka pihak ketiga, atau hasil JSON), atau bisakah Anda mengubahnya?
Jika kamu bisa mengubahnya, maka saya sarankan kamu melakukannya karena kamu akan bisa memiliki lebih banyak kendali.
type Output = Array<Array<number[] | { x: number, y: number }>>;
let output1: Output = [
[
[1, 2, 3],
{ x: 1, y: 2 }
],
[
[4, 5, 6],
{ x: 3, y: 4 }
],
[
[7, 8, 9],
{ x: 5, y: 6 }
]
];
