跳到主要内容

@typescript-eslint/no-inferrable-types

不允许对初始化为数字、字符串或布尔值的变量或参数进行显式类型声明。

变量或者参数如果在初始化时定义为布尔、数字或者字符串类型,Typescript可以推断出其类型,不用显式声明其类型。

该规则仅支持对.js/.ts文件进行检查。

规则配置

// code-linter.json5
{
"rules": {
"@typescript-eslint/no-inferrable-types": "error"
}
}

选项

详情请参考@typescript-eslint/no-inferrable-types选项

正例

const num = 10;
export const a1 = 10n;
export const a2 = BigInt(num);
export const a3 = !num;
export const a4 = Boolean(null);
export const a5 = true;
export const a6 = null;

export class Foo {
public prop = num;
}

export function fn(a = num, b = true): void {
console.info(`${a}${b}`);
}

反例

const num: number = 10;
export const a1: bigint = 10n;
export const a2: bigint = BigInt(num);
export const a3: boolean = !num;
export const a4: boolean = Boolean(null);
export const a5: boolean = true;
export const a6: null = null;

export class Foo {
public prop: number = num;
}

export function fn(a: number = num, b: boolean = true): void {
console.info(`${a}${b}`);
}

规则集

plugin:@typescript-eslint/all

Code Linter代码检查规则的配置指导请参考Code Linter代码检查