跳到主要内容

@typescript-eslint/prefer-readonly-parameter-types

要求将函数参数解析为“只读”类型,以防止参数被修改而产生一些副作用,更多规则详情请参考prefer-readonly-parameter-types

该规则校验比较严格,由开发者自主判断是否需要修复告警。

规则配置

// code-linter.json5
{
"rules": {
"@typescript-eslint/prefer-readonly-parameter-types": "warn"
}
}

选项

详情请参考@typescript-eslint/prefer-readonly-parameter-types选项

正例

const index = 0;
export function array1(arg: readonly string[]): void {
console.info(`${arg[index]}`);
}

export function array2(arg: readonly (readonly string[])[]): void {
console.info(`${arg[index][index]}`);
}
export function array3(arg: readonly [string, number]): void {
console.info(`${arg[index][index]}`);
}

export function array4(arg: readonly [readonly string[], number]): void {
console.info(`${arg[index][index]}`);
}

export function primitive1(arg: string): void {
console.info(`${arg}`);
}

export function primitive2(arg: number): void {
console.info(`${arg}`);
}

export function primitive3(arg: boolean): void {
console.info(`${arg}`);
}

export function primitive5(arg: null): void {
console.info(`${arg}`);
}

export function primitive6(arg: undefined): void {
console.info(`${arg}`);
}

反例

const index = 0;
export function array1(arg: string[]): void {
console.info(`${arg[index]}`);
}

export function array2(arg: (string[])[]): void {
console.info(`${arg[index][index]}`);
}
export function array3(arg: [string, number]): void {
console.info(`${arg[index][index]}`);
}

export function array4(arg: [string[], number]): void {
console.info(`${arg[index][index]}`);
}

规则集

plugin:@typescript-eslint/all

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