On this page

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>