[英]Typescript how to define array type with nested and predict
如何設置數組的類型
["string", ["string", ["other string"],["any"]], ["string", ["string", ["something string"]]], ....]
也就是說,深度可以是任意的。 索引“0”后的 arrays 的編號也是。 主要條件,索引'0'下的類型必須是'string'。
來自 Ulad Kasach,電話 https://stackoverflow.com/a/60722301/11745228 ,
這有效:
type ValueOrArray<T> = T | ValueOrArray<T>[];
type NestedStringArray = ValueOrArray<string>;
或者,更直接地回答您的問題:
type StringOrArray = string | StringOrArray[];
type NestedArray = StringOrArray;
然后只需使用NestedStringArray
鍵入您的數組
這是完成您的要求的推薦方法...
type RecursiveArray = string | RecursiveArray[];
唯一的問題是它是相對論的新增功能,在舊版本的 typescript 中不起作用。 我相信它是在v4.0.0
左右添加的。
這是一個片段,您可以復制和粘貼以查看它在實際開發環境中的工作情況。
type RecursiveArray = string | RecursiveArray[];
const mexicanHurricane:RecursiveArray = [
'very tall 16oz to 18oz glass',
[
'crushed ice',
[
[
'100% agave tequila',
'coconut-rum',
'vodka',
[
'coconut milk',
'pineapple juice',
'fresh squeezed lime juice',
'slices of mango',
[
'Tangy lime Chile Powder w/ salt on glass-rim',
'finish with straw and little umbrella'
]
]
]
]
]
];
console.log(mexicanHurricane);
需要注意的是,您可以像這樣添加(或更改)類型:
type RecursiveArray = string | number | boolean | RecursiveArray[];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.