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 实用程序类型一章中了解有关此类实用程序类型的更多信息。