typescript/no-unsafe-argument 細かい
何をしますか
このルールは、any と型指定された引数で関数を呼び出すことを禁止します。
なぜ問題ですか
TypeScript の any 型は、型システムから「逃げ出す」危険な手段です。any を使用すると、ほとんどの型チェックルールが無効になり、一般的に安全ではありません。any と型指定された値を関数に渡すと、その関数呼び出しの型安全性が失われます。
例
このルールに違反する不正なコードの例:
ts
declare const anyValue: any;
function takesString(str: string): void {
console.log(str.length);
}
takesString(anyValue); // 安全でない
declare function takesNumber(num: number): number;
const result = takesNumber(anyValue); // 安全でないこのルールに準拠する正しいコードの例:
ts
declare const stringValue: string;
declare const numberValue: number;
declare const unknownValue: unknown;
function takesString(str: string): void {
console.log(str.length);
}
takesString(stringValue); // 安全
// 型ガードを使用して、`unknown` を安全に使用
if (typeof unknownValue === "string") {
takesString(unknownValue); // 型ガード後は安全
}
// 型アサーション(タイプについて確信がある場合)
takesString(unknownValue as string); // 明示的に安全でないが意図的使い方
このルールを構成ファイルまたは CLI で有効にするには、次のようにします:
json
{
"rules": {
"typescript/no-unsafe-argument": "error"
}
}bash
oxlint --type-aware --deny typescript/no-unsafe-argument