如何确定打字稿中的变量类型,数字数组或字符串数​​组?

时间:2019-12-17 07:37:11

标签: javascript typescript

我有一个类似

的变量
const data = [];

在我的应用程序的某些地方,数据看起来像字符串数组或数字数组

// data [1, 2, 3]
// data ["1", "2", "3"]

如何获取此变量的类型-类型为字符串数组还是数字数组?

4 个答案:

答案 0 :(得分:2)

是的,您可以使用一种类型来输入变量

// type data as an array of strings
const data: string[] = [];

// type data as an array of numbers
const data: number[] = [];

// type data as an array of objects
const data: object[] = [];

如果要在数组中使用混合类型,可以将其键入为any。但这可能不是一个好习惯。

const data: any[] = [];

有关输入打字稿的更多信息,请参见此处: Basic type documentation

要定义具有多种类型的数组,请参见:https://stackoverflow.com/a/29382420/1934484

答案 1 :(得分:1)

@Tomas Vancoillie的想法正确。

您可以使用:运算符声明它们。

您还可以使用Array()推断类型,例如:

let myStringArray = Array<string>();

答案 2 :(得分:0)

如果您只需要获取其中的元素的类型(由于它们是stringnumber,则只需获取第一个元素的类型,因为所有其他元素都具有相同类型:

typeof data[0] // string or number

答案 3 :(得分:0)

您可以像这样定义数组,打字稿编译器将仅允许字符串

Procfile

或者如果您想使用字符串和数字来定义它

const array: Array<string> = [];

您也可以这样定义

const array: Array<string | number> = [];