![](/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.