以下是代码:
var x = {};
x.test = 'abc';
获取打字稿编译器错误:
TS2339:类型“{}”上不存在属性“test”。
我想要禁止对象文字的此警告,我想将suppressExcessPropertyErrors
放入tsconfig.json
应解决此问题。
tsconfig:
{
"compilerOptions": {
"suppressExcessPropertyErrors": true
},
...
}
但没有改变..编译器仍然显示错误。
感谢您的任何提示;)
答案 0 :(得分:4)
我认为将suppressExcessPropertyErrors放入tsconfig.json应解决此问题。
没有。它抑制了对象构造中的多余属性,例如
var x = {};
x = {test:'abc'};
我想要禁止对象文字的这个警告
您可以使用any
类型执行任何操作,例如
var x:any = {};
x.test = 'abc';
这称为懒惰对象初始化,处理它的模式在此处介绍:https://basarat.gitbooks.io/typescript/content/docs/tips/lazyObjectLiteralInitialization.html
答案 1 :(得分:0)
我赞同 @basarat 一些观点,但请允许我添加一些建议。
这样的声明对象道具可能有几个原因:
var x = {
test: ''
};
x.test = 'abc';
x
对象时,您将看到此对象包含的属性。any
类型,则可能是这样。 <强>解释强>:
// origin object x with originProp property
var x: any = {
originProp: 'abc'
};
// new object with new newProp property
x = {
newProp:'abc'
};