TS中严格的对象属性检查
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
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=1779