TypeScript允许隐式转换any
为更强的类型。考虑到反序列化JSON的类型any
,此行为会导致许多类型错误并中断输入。
我可以使用哪些编译器或linting选项来阻止隐式转换any
为更强的类型?
复制此操作应标记为允许从any
转换为更强的类型。
const o = JSON.parse("");
const s: string = o.twinlakes;
如果您还没有尝试过,请尝试启用TypeScript--noImplicitAny
编译器标志来阻止声明,以防意外忘记标记无法推断的事物类型。这将停止诸如let data;
或禁止function takesData(data) { /* ... */ }
其data
变量“隐式”为type的代码any
。
此外,还有一些TSLint规则在这里有帮助:
no-any
:禁止将any
用作类型声明。使用它可以阻止声明包含any
在其中,例如let data: any = {/*...*/}
。no-unsafe-any
:禁止any
以不安全的方式意外使用。这与no-any
您可能仍然any
不知道使用类型的情况不同:例如,let data = JSON.parse("{}");
。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句