TypeScript 对象类型

TypeScript 具有用于键入对象的特定语法。

在我们的 JavaScript 对象章节中了解有关对象的更多信息。


实例

const car: { type: string, model: string, year: number } = {
  type: "Toyota",
  model: "Corolla",
  year: 2009
};
亲自试一试 »

这样的对象类型也可以单独编写,甚至可以重复使用,详情请查看interfaces


类型推断

TypeScript 可以根据属性值推断属性的类型。

实例

const car = {
  type: "Toyota",
};
car.type = "Ford"; // 没有错误
car.type = 2; // 错误:类型"数字"不可分配给类型"字符串"。
亲自试一试 »

可选属性

对象属性是不必在对象定义中定义的属性。

没有可选属性的实例

const car: { type: string, mileage: number } = { // Error: Property 'mileage' is missing in type '{ type: string;}' but required in type '{ type: string; mileage: number; }'.
  type: "Toyota",
};
car.mileage = 2000;

带有可选属性的实例

const car: { type: string, mileage?: number } = { // 没有错误
  type: "Toyota"
};
car.mileage = 2000;
亲自试一试 »

索引签名

索引签名可用于没有定义属性列表的对象。

实例

const nameAgeMap: { [index: string]: number } = {};
nameAgeMap.Jack = 25; // no error
nameAgeMap.Mark = "Fifty"; // 错误:类型"字符串"不可分配给类型"数字"。
亲自试一试 »

像这样的索引签名也可以用 Record<string, number> 等实用程序类型来表示。

在我们的 TypeScript 实用程序类型一章中了解有关此类实用程序类型的更多信息。


TypeScript 练习

学习训练

训练:

为下面的对象添加正确的类型:

const car: { type: , model: , year:  } = {
type: "Toyota",
model: "Corolla",
year: 2009
};


开始训练