![](/img/trans.png)
[英]@typescript-eslint/no-unsafe-assignment: Unsafe assignment of an any value
[英]New eslint errors with the @typescript-eslint/no-unsafe-* rules
我在将它们添加到一些现有项目中时遇到了一些麻烦。 例如,我在我开发的模块中有一个 class:
export default class ClassName {
// Class members
}
现在我将其导入另一个项目:
import ClassName from 'modulename';
const object = new ClassName();
我在这条线上收到 2 个错误。
在const object
object
的 object 上:
error Unsafe assignment of an any value @typescript-eslint/no-unsafe-assignment
在new
的new ClassName
中:
error Unsafe construction of an any type value @typescript-eslint/no-unsafe-call
我怎样才能避免这些错误?! 我真的很想能够遵守这些规则,因为我认为它们会非常有用!
谢谢。
这是另一个例子:
import { readJsonSync } from 'fs-extra';
const testEnv = readJsonSync(testEnvPath);
在这里,我在const testEnv
的testEnv
上得到了no-unsafe-assignment
错误,在第二行的readJsonSync
调用中得到了no-unsafe-call
错误。
我可以用这段代码摆脱第一个:
interface ITestEnv {
// interface members
}
const testEnv: ITestEnv = readJsonSync(testEnvPath) as ITestEnv;
但是,我仍然无法弄清楚如何摆脱readJsonSync
调用中的第二个。
Eslint 无法解析你的模块的绝对导入,
这使得它可以将您的 class 类型推断为any
。
确保正确定义了 ESlint 使用的tsconfig.json文件中的baseUrl
和paths
。
@see Typescript – 模块分辨率
在第一种情况下,您只有一个错误来自构造函数,它级联到 const 赋值。 您的 class 实现中的某些内容正在将类型推断推断为any
。
不是说你的代码不正确。 可能是,但有一个( Github 上的未解决问题)报告构造函数被同一规则错误标记。
关于你的第二个问题,你是否添加了@type/fs-extra作为项目依赖? 许多 npm 包本身没有类型。 类型由某人创建并添加到@types 库中。 在这种情况下, @types/package_name
必须单独添加为依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.