0Pricing
TypeScript Academy · 课时

类型化数组:T[] 与 Array<T>

为数组指定类型,防止混入不兼容的值。

类型化数组:T[] 与 Array<T> 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 4 节课。

欢迎

TypeScript 支持为数组添加类型,使其中只能存储特定类型的值。本课将介绍两种语法形式及其使用场景。

T[] 语法

为数组添加类型最常见的方式,是在元素类型后追加 []。这称为简写语法。
const numbers: number[] = [1, 2, 3];
const names: string[] = ['Alice', 'Bob'];
const flags: boolean[] = [true, false, true];

Array<T> 泛型语法

泛型语法 Array 与 T[] 等价。有些团队更喜欢这种写法,因为它与其他泛型类型保持一致。
const scores: Array<number> = [95, 87, 73];
const tags: Array<string> = ['typescript', 'beginner'];

数组中的类型错误

如果尝试添加类型错误的值,TypeScript 会报告错误。这可以防止混合类型数组引发问题。
const ids: number[] = [1, 2, 3];
// ids.push('four'); // Error: Argument of type 'string' is not assignable to 'number'

推断数组类型

如果使用值初始化数组,TypeScript 会推断元素类型。空数组会被推断为 `never[]`——请始终为其添加类型标注。
const nums = [1, 2, 3];    // inferred: number[]
const mixed = [1, 'hi'];   // inferred: (string | number)[]
const empty: string[] = []; // must annotate

对象数组

可以使用接口或类型别名作为元素类型,为对象数组添加类型。
interface User { id: number; name: string; }
const users: User[] = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
];

常用数组方法都有类型

TypeScript 理解内置数组方法。map、filter 和 find 都会返回类型正确的结果。
const nums: number[] = [1, 2, 3, 4];
const doubled: number[] = nums.map(n => n * 2);
const evens: number[] = nums.filter(n => n % 2 === 0);

嵌套数组

通过嵌套数组类型语法,可以为二维数组添加类型。
const matrix: number[][] = [
  [1, 2, 3],
  [4, 5, 6],
];

联合类型数组

如果要允许数组包含多种类型,请将联合类型用作元素类型。
const mixed: (string | number)[] = ['Alice', 1, 'Bob', 2];

带类型的数组解构

解构数组时,TypeScript 会推断出被解构变量的类型。
const coords: number[] = [10, 20];
const [x, y] = coords; // x: number, y: number

选择 T[] 还是 Array<T>

对 TypeScript 而言,两种形式完全相同。简单类型使用 T[];元素类型较长,或同时使用其他泛型、需要提高可读性时,使用 Array。

快速检查

对于声明为 `const list = []` 的空数组,TypeScript 会推断出什么类型?

回顾

在 TypeScript 中,使用 T[] 或 Array 为数组添加类型。始终为数组添加类型标注。TypeScript 会对 push、map、filter 及其他数组操作强制执行元素类型检查。

常见问题解答

「类型化数组:T[] 与 Array<T>」课时是免费的吗?

是的 — 「类型化数组:T[] 与 Array<T>」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 4 节课。

「类型化数组:T[] 与 Array<T>」这节课中我会学到什么?

为数组指定类型,防止混入不兼容的值。 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 TypeScript Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 TypeScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「类型化数组:T[] 与 Array<T>」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 TypeScript Academy 课中编写并运行代码吗?

能。每节 TypeScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 类型化数组:T[] 与 Array
  2. Readonly 数组与不可变数据
  3. 元组:固定长度的类型化数组
  4. 枚举:数值常量与字符串常量
← 返回 TypeScript Academy