TS中严格的对象属性检查

该文章由 leevare 发布于 ,归类于 Javascript

ts 会对对象字面量进行严格的属性检查,以保证属性能够正确传递。所以,当一个属性以对象字面量的形式传递时,如果传递了不存在的属性,编译器将会报错。

例如如下代码

function printName(person: { name: string }) {
  console.log(person.name);
}

printName({ name: "leevare" });

// 错误,对象字面量只能指定已知属性,而age并不存在
printName({ name: "leevare", age: 24 });

如果想传递多个属性时,可以使用变量的形式,如下

const person = { name: "leevare", age: 24 };

printName(person);

这里不会报错,之所以只对对象字面量进行类型检查,因为在这种情况下,那些实际上并没有被使用到的属性有可能会拼写错误或者会被误用。

相关概念:https://github.com/Microsoft/TypeScript/pull/3823

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒