跳到主要内容

@typescript-eslint/prefer-readonly

如果私有成员从未在构造函数之外进行修改,则要求将其标记为“只读”。

规则配置

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

选项

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

正例

export class Container {
// Public members might be modified externally
public publicMember: boolean = true;

// Protected members might be modified by child classes
protected protectedMember: number = Number.MAX_VALUE;

// This is modified later on by the class
private modifiedLater = 'unchanged';

public mutate() {
this.modifiedLater = 'mutated';
}
}

反例

export class Container {
// These member variables could be marked as readonly
private neverModifiedMember = true;

private onlyModifiedInConstructor: number;

// Private parameter properties can also be marked as readonly
private neverModifiedParameter: string;

public constructor(
onlyModifiedInConstructor: number,
// Private parameter properties can also be marked as readonly
neverModifiedParameter: string,
) {
this.neverModifiedParameter = neverModifiedParameter;
this.onlyModifiedInConstructor = onlyModifiedInConstructor;
}
}

规则集

plugin:@typescript-eslint/all

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