TypeScript 对象类型
TypeScript 具有用于对对象进行类型输入的特定语法。
例子
const car: { type: string, model: string, year: number } = {
type: "Toyota",
model: "Corolla",
year: 2009
};
像这样的对象类型也可以单独编写,甚至可以重复使用
类型推断
TypeScript 可以根据属性的值推断其类型。
例子
const car = {
type: "Toyota",
};
car.type = "Ford";
// no error car.type = 2;
// Error: Type 'number' is not assignable to type 'string'.
可选属性
可选属性是不必在对象定义中定义的属性。
没有可选属性的示例
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 } = { // no error type: "Toyota"
};
car.mileage = 2000;
索引签名
索引签名可用于没有定义属性列表的对象。
例子
const nameAgeMap: { [index: string]: number } = {};
nameAgeMap.Jack = 25; // no error
nameAgeMap.Mark = "Fifty"; // Error: Type 'string' is not assignable to type 'number'.
像这样的索引签名也可以用类似的实用程序类型来表示Record<string, number>
。