在TypeScript中定义多类型数组:联合类型 vs 元组
大家好!我最近开始学习TypeScript,在声明一个可以包含不同类型元素的数组时遇到了问题。
我有一个函数,它接受一个包含字符串和数字的数组。例如,我想将用户的ID(数字)和姓名(字符串)存储在一个数组中。我尝试这样做:
```typescript
let users = [1, "Alice", 2, "Bob"];
```
TypeScript自动推断出类型 `(string | number)[]`,这似乎可行。但后来我需要严格控制顺序:先是数字,然后是字符串。我尝试了这样:
```typescript
let user: [number, string] = [1, "Alice"];
```
这里一切正常。但如果我想要一个由这样的元组组成的数组呢?我写了:
```typescript
let users: [number, string][] = [[1, "Alice"], [2, "Bob"]];
```
但后来出现了另一个任务:数组可以包含字符串或数字,但不能在同一个元素中同时包含两者。例如,标签列表:`["typescript", 42, "javascript", 100]`。
问题:如何