繁体   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