推論可能な型を許可しない
数値、文字列、または真偽値で初期化された変数またはパラメータの明示的な型宣言を許可しません。
🎨
拡張 "plugin:@typescript-eslint/"スタイル"
を ESLint設定 に追加すると、このルールが有効になります。
🔧
このルールによって報告される一部の問題は、 --fix
ESLintコマンドラインオプション.
によって自動的に修正できます。
TypeScriptは、パラメータ、プロパティ、および変数の型を、それらのデフォルト値または初期値から推論できます。真偽値、数値、または文字列で初期化されたこれらの構成要素のいずれかに明示的な `:` 型注釈を使用する必要はありません。そうすることで、コードに不要な冗長性が加わり、読みづらくなり、場合によっては、TypeScriptがより具体的なリテラル型(例: `10`)ではなく、より一般的なプリミティブ型(例: `number`)を推論するのを妨げる可能性があります
module.exports = {
"rules": {
"@typescript-eslint/no-inferrable-types": "error"
}
};
.eslintrc.cjs
プレイグラウンドでこのルールを試す ↗
- 例
- ❌ 間違い
const a: bigint = 10n;
const a: bigint = BigInt(10);
const a: boolean = !0;
const a: boolean = Boolean(null);
const a: boolean = true;
const a: null = null;
const a: number = 10;
const a: number = Infinity;
const a: number = NaN;
const a: number = Number('1');
const a: RegExp = /a/;
const a: RegExp = new RegExp('a');
const a: string = `str`;
const a: string = String(1);
const a: symbol = Symbol('a');
const a: undefined = undefined;
const a: undefined = void someValue;
class Foo {
prop: number = 5;
}
function fn(a: number = 5, b: boolean = true) {}
✅ 正しいconst a = 10n;
const a = BigInt(10);
const a = !0;
const a = Boolean(null);
const a = true;
const a = null;
const a = 10;
const a = Infinity;
const a = NaN;
const a = Number('1');
const a = /a/;
const a = new RegExp('a');
const a = `str`;
const a = String(1);
const a = Symbol('a');
const a = undefined;
const a = void someValue;
class Foo {
prop = 5;
}
function fn(a = 5, b = true) {}
✅ 正しいプレイグラウンドで開く
オプション
type Options = [
{
ignoreParameters?: boolean;
ignoreProperties?: boolean;
},
];
const defaultOptions: Options = [
{ ignoreParameters: false, ignoreProperties: false },
];
このルールは、次のオプションを受け入れます。
`ignoreParameters`
function foo(a: number = 5, b: boolean = true) {
// ...
}
✅ 正しいtrueに設定すると、次のパターンは有効とみなされます。
`ignoreParameters`
class Foo {
prop: number = 5;
}
✅ 正しい`ignoreProperties`
使用しない場合