在 TypeScript 中初始化一个空字符串数组

在 TypeScript 中初始化一个空字符串数组

Initialize an empty String Array in TypeScript

您可以将空字符串数组初始化为const arr: string[] = []. 该数组可以包含零个或多个 类型的元素string尝试向数组添加不同类型的元素会导致类型检查器抛出错误。

索引.ts
// ✅ First approach (better) const arr: string[] = []; // ✅ Second approach const arr2 = [] as string[];

我们将一个空字符串数组初始化为string[]. 该数组可以包含零个或多个字符串,但如果我们尝试使用不同类型的元素,则会出现错误。

索引.ts
const arr: string[] = []; arr.push('a'); // ✅ OK // ⛔️ Error: Argument of type 'number' is // not assignable to parameter of type 'string'.ts(2345) arr.push(1);

您可以使用这种方法来初始化任何类型的空数组。

索引.ts
const numArray: number[] = []; numArray.push(1); const objArray: { name: string }[] = []; objArray.push({ name: 'Alice' }); const twoDimensionalArray: number[][] = []; twoDimensionalArray.push([1, 2, 3]);

请注意语法是string[]和不是[string]这通常是混淆的根源,但string[]它是零个或多个 type 元素的数组string,并且[string]

具有单个元素的
元组string

初始化空字符串数组的另一种方法是使用
类型断言

索引.ts
const arr2 = [] as string[]; arr2.push('a'); // ✅ OK // ⛔️ Error: Argument of type 'number' is // not assignable to parameter of type 'string'.ts(2345) arr2.push(1);

当我们有关于 TypeScript 不知道的值类型的信息时,使用类型断言。

如果我们声明一个空数组并且不像我们在前面的示例中那样显式地键入它,TypeScript 不知道我们将添加到数组中的元素类型并将其键入为any[].

让数组类型any[]有效地关闭任何类型检查,所以这不是我们大多数时候想要的。

发表评论