Avatar ·

在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]`。 问题:如何