Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 对象类型


TypeScript 有一种特殊的语法来为对象进行类型化。

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


示例

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

这样的对象类型也可以单独编写,甚至可以重复使用,查看 接口 以了解更多详细信息。


类型推断

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

示例

const car = {
  type: "Toyota",
};
car.type = "Ford"; // 无错误
car.type = 2; // 错误:类型“number”无法分配给类型“string”。
亲自尝试 »

可选属性

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

没有可选属性的示例

const car: { type: string, mileage: number } = { // 错误:类型“{ type: string; }”中缺少属性“mileage”,但在类型“{ type: string; mileage: number; }”中需要。
  type: "Toyota",
};
car.mileage = 2000;

带有可选属性的示例

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

w3schools CERTIFIED . 2022

获取认证!

完成 TypeScript 模块,进行练习,参加考试并获得 w3schools 认证!!

$45 报名

索引签名

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

示例

const nameAgeMap: { [index: string]: number } = {};
nameAgeMap.Jack = 25; // 无错误
nameAgeMap.Mark = "Fifty"; // 错误:类型“string”无法分配给类型“number”。
亲自尝试 »

这样的索引签名也可以用工具类型来表示,例如 Record<string, number>

在我们的 TypeScript 工具类型 章节中了解更多关于此类工具类型的信息。


TypeScript 练习

通过练习测试自己

练习

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

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

        

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.