[英]Why does tslint remove object-keys?
我开始在我的 TypeScript 项目上使用 tslint。 当我查看 linted 源时,我注意到有时键会从对象中删除。
我进行了生产构建(本地),没有显示错误。 这怎么可能? 我在网上找不到有关此行为的信息。
前:
this.streamsDataModelDistance = new SimpleStreamsDataModel({
polylineValueModels: polylineValueModels,
fields: this.settingsModel.fields,
commuters: distanceCommuters
});
后:
this.streamsDataModelDistance = new SimpleStreamsDataModel({
polylineValueModels,
fields: this.settingsModel.fields,
commuters: distanceCommuters
});
请注意缺少的键“polylineValueModels”。
这甚至如何编译为 JavaScript 而没有错误? 我很犹豫要不要把这个放进后备箱。
您刚刚启用了object-literal-shorthand
规则,您可以在tslint.json
文件中设置它。
{
"rules": {
"object-literal-shorthand": false
}
}
https://palantir.github.io/tslint/rules/object-literal-shorthand/
这不是错误,它是 ECMAScript 2015 的标准语法。
在 ECMAScript 2015 中,可以使用简写符号,因此不再需要关键字“function”。
// Shorthand property names (ES2015)
var a = 'foo', b = 42, c = {};
var o = {a, b, c};
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer
这很好,也是一个方便的速记。
如果属性与变量具有相同的名称,TypeScript 允许轻松分配 object 属性。
const foo = "bar";
const object = {
foo
}
将创建一个 object 包含:
{
foo: "bar"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.