@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代码检查。