value = Object.assign(new Model(), value)
启用prefer-object-spread
lint 失败,自动修复以使用对象传播
没有。 此规则应忽略Object.assign
的第一个参数是类实例的情况。
--project
,我们可以检查第一个参数的类型是否是类类new ...
并忽略表达式如https://github.com/palantir/tslint/issues/2618#issuecomment -303879255 中所述
Object.assign
对其第一个参数有副作用。 (这就是 TypeScript 将{ ...x, ...y }
为Object.assign({}, x, y)
。)该规则仅应在第一个参数是新的对象文字时激活。
只有当第一个参数是新的对象文字时,规则才应激活。
好吧,从技术上讲,你是对的。 但是我经常看到程序员不小心第一个参数的副作用的错误,他们提供了一个非文字值,实际上他们_实际上_打算做与对象传播相同的事情。 所以我仍然希望这条规则能抓住这一点。 也许它可以选择加入......
如果第一个参数不是对象字面量,则规则仅在将结果分配给某物时才会产生错误。
分配 Object.assign 的返回值仅在第一个参数是 CallExpression、NewExpression 或类似参数时才有意义。 其他所有内容,例如 Identifier 或 PropertyAccessExpression 仍应为错误。
这不需要类型检查器。
最有用的评论
如果第一个参数不是对象字面量,则规则仅在将结果分配给某物时才会产生错误。
分配 Object.assign 的返回值仅在第一个参数是 CallExpression、NewExpression 或类似参数时才有意义。 其他所有内容,例如 Identifier 或 PropertyAccessExpression 仍应为错误。
这不需要类型检查器。