0Pricing
TypeScript Academy · 课时

对象类型、可选属性/只读属性、索引签名

定义带属性的对象类型,将部分属性标记为可选或只读,并使用索引签名支持灵活的键。

对象类型、可选属性/只读属性、索引签名 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 3 节课。

简介

目标:在 TypeScript 中定义结构化对象。您将了解对象类型、可选属性、只读修饰符,以及用于动态键的索引签名。

基本对象

对象类型定义属性名称及其类型。每个对象都必须符合声明的结构。

type User = {
  id: number;
  name: string;
};

const u: User = { id: 1, name: "Ada" };
console.log(u);

可选属性

可选属性使用“?”。对象可以省略这些属性,TypeScript 会在使用前检查其是否为 undefined。

type User = {
  id: number;
  name: string;
  email?: string; // optional
};

const a: User = { id: 1, name: "Ada" };
const b: User = { id: 2, name: "Lin", email: "l@example.com" };

只读属性

readonly可确保属性在初始化后不能重新赋值。适用于常量和配置对象。

type Config = {
  readonly version: number;
  name: string;
};

const cfg: Config = { version: 1, name: "App" };
// cfg.version = 2; // Error, readonly

索引签名

索引签名允许使用具有某种类型的未知属性名称。例如,键是字符串,值是数字。

type Dictionary = {
  [key: string]: number;
};

const scores: Dictionary = { math: 95, eng: 88 };
console.log(scores["math"]);

组合概念

您可以在同一个类型中组合readonly、可选属性和索引签名,从而构建灵活且安全的模型。

type Settings = {
  readonly id: string;
  theme?: "light" | "dark";
  [extra: string]: string | number | undefined;
};

const s: Settings = { id: "abc", theme: "dark", fontSize: 14 };
console.log(s);

可选属性检查

快速检查:“?”放在属性后面表示什么?

回顾

回顾:对象可以声明必需、可选、只读和索引签名属性。这些工具可以在灵活性与安全性之间取得平衡。

常见问题解答

「对象类型、可选属性/只读属性、索引签名」课时是免费的吗?

是的 — 「对象类型、可选属性/只读属性、索引签名」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 3 节课。

「对象类型、可选属性/只读属性、索引签名」这节课中我会学到什么?

定义带属性的对象类型,将部分属性标记为可选或只读,并使用索引签名支持灵活的键。 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 TypeScript Academy 需要有经验吗?

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

「对象类型、可选属性/只读属性、索引签名」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 对象类型、可选属性/只读属性、索引签名
  2. 接口与类型别名
  3. 结构化类型与多余属性检查
← 返回 TypeScript Academy