我可以看到以下代码没有触发任何错误或警告:
type myType = {a:number,b:number}
const myObject = {a:1} as myType
Run Code Online (Sandbox Code Playgroud)
我们刚刚遇到了一个问题,即使用“as”导致了生产错误,这让我认为可能有一个 eslint 规则不允许这样做。你知道这样的规则吗?
是的,如果不小心使用类型断言确实会很危险。不,ESLint并没有提供完全禁止开箱即用的类型断言的规则。所以你必须使用自定义插件,例如
禁止在 TypeScript 代码中使用类型断言。该规则将禁止 as 运算符和尖括号语法,除非用于 const 断言或未知类型。该规则还禁止非空断言。
还有其他包提供了禁止类型断言的选项:
assertionStyle为"never":该选项定义了预期的断言样式。assertionStyle 的有效值为: as 将强制您始终使用 ... as foo。尖括号将强制您始终使用 ... never 将强制您不执行任何类型断言。
禁止对象字面量出现在类型断言表达式中。仍然允许转换为任何或未知。
但是,我不确定完全禁止类型断言是否是一个好主意。有一些您真正需要的有效用例。您是最小的、可重现的示例,这只是一个严重的程序员错误,其中忽略了基本类型安全性。
PStype别名应按照惯例用大写字母拼写(例如type MyType = ...)
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |