簡體   English   中英

如何在Typescript中聲明一個變量類型的數組?

[英]How to declare an array of type of a variable in Typescript?

假設我有一個變量x ,它可以是任何類型:

let x: number = 5

我想創建一個存儲x類型值的數組。 在這種情況下,我想要一個number[]

但是, x可以是任何類型:原語、對象、自定義類型等。

我正在尋找這樣的東西:

// Doesn't work
let arr: <x>[] = []

我覺得 generics 是這里的答案,但我想不出任何具體的方法來解決這個問題。

有什么辦法可以做到這一點?

如果x是類型名稱,則只需使用x[]Array<x> 手冊鏈接

如果x變量名或類似名稱,則使用typeof類型運算符(typeof x)[]Array<typeof x>

declare let x: number;

let arr1: Array<typeof x>;
//  ^^^−−−−−−−−−−−− this is number[]

let arr2: (typeof x)[];
//  ^^^−−−−−−−−−−−− so is this

游樂場鏈接

請注意,TypeScript typeof運算與 JavaScript typeof運算符的值不同。 typeof作為類型定義的一部分出現時,它是 TypeScript typeof類型運算符; 當它與一個值相關時,它是 JavaScript typeof運算符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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