簡體   English   中英

Typescript 如何用嵌套和預測定義數組類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM