如何隐式地从`any`转换为更强的类型

双胞胎

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将类型投影转换为隐式的PDT?

元素隐式地具有“ any”类型,因为在打字稿中将字符串转换为enum时,索引表达式不是enum的“ number”类型

隐式转换为数组索引类型

无法将类型 *** 隐式转换为 ****

如何理解最终覆盖器返回的类型被隐式转换为被调用的覆盖函数的返回类型?

如何防止将隐式转换为具有多种整数类型的boost :: variant类型?

如何在 TypeScript 中将数组类型隐式转换为元组类型?

如何禁用常量的隐式类型转换?

隐式地将泛型转换为包装器

如何防止Typescript中的函数调用隐式转换为“ any”

如何避免VARCHAR隐式类型转换为VARCHAR2使用Hibernate?

具有Num类型类的实例如何隐式强制转换为小数?

C#如何将整数类型的项隐式转换为double项?

如何修复:“无法将类型隐式转换为‘字符串’”错误

如何解决错误:无法将类型“long”隐式转换为“bool”?

无法将类型DbSet <>隐式转换为IQueryable <>

无法将类型“ void”隐式转换为“ x”

无法将类型[具体]隐式转换为[接口]

无法将类型'string'隐式转换为'decimal'

无法将类型'int'隐式转换为'bool'Unity

无法将类型'double'隐式转换为'int'。-错误

无法将类型ResponseBase隐式转换为Response

无法隐式将类型string []转换为string

无法将类型“ double”隐式转换为“ int”

隐式将float转换为其他类型

无法将类型ApplicationUser隐式转换为User

无法将类型 'IEnumerable<int> 隐式转换为 'int'

C#没有隐式转换为继承的类型

无法将类型“int”隐式转换为“bool”