菜单
×
   ❮   
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 Objects 章节 中关于对象的更多内容。


示例

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 Utility Types 章节中了解更多关于此类实用类型的信息。


TypeScript 练习

通过练习来测试自己

练习

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

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

        

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持