在 TS 中声明只接受特定值的数组

在 TS 中声明只接受特定值的数组

Declare Array that only accepts specific Values in TS

使用联合类型来声明一个只接受特定值的数组,例如
const arr2: ('a' | 'b' | 'c')[] = []. 联合类型由两个或多个其他类型或文字组成。示例中的数组只能包含字符串
a,bc

索引.ts
type NumbersLessThan5 = 1 | 2 | 3 | 4; const arr: NumbersLessThan5[] = []; arr.push(1); arr.push(2); arr.push(3); arr.push(4);

我们使用
联合类型
来创建一个只接受特定值的数组。

示例中的数组只能包含数字1-4如果我们尝试将一个不包含在联合类型中的数字添加到数组中,我们会得到一个错误。

索引.ts
type NumbersLessThan5 = 1 | 2 | 3 | 4; const arr: NumbersLessThan5[] = []; // ⛔️ Error: Argument of type '5' is not // assignable to parameter of type 'NumbersLessThan5'.ts(2345) arr.push(5);

这在使用字符串文字时以相同的方式工作。

索引.ts
type FirstThreeLetters = 'a' | 'b' | 'c'; const arr2: FirstThreeLetters[] = []; arr2.push('a'); arr2.push('b'); arr2.push('c'); // ⛔️ Error: Argument of type '"d"' is not // assignable to parameter of type 'FirstThreeLetters'.ts(2345) arr2.push('d');

这些值不必是同一类型。在不太可能出现的混合数组情况下,您可以使用相同的方法。

索引.ts
type Mixed = 'a' | 'b' | 1; const arr2: Mixed[] = []; arr2.push('a'); arr2.push('b'); arr2.push(1);

联合类型在 TypeScript 中非常有用,实际上boolean类型只是联合的别名true | false