文档管理中心
指南编写与调试应用代码编辑代码检查Code Linter代码检查规则通用规则@typescript-eslint@typescript-eslint/prefer-readonly

@typescript-eslint/prefer-readonly

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

规则配置

收起
自动换行
深色代码主题
复制
  1. // code-linter.json5
  2. {
  3. "rules": {
  4. "@typescript-eslint/prefer-readonly": "error"
  5. }
  6. }

正例

收起
自动换行
深色代码主题
复制
  1. export class Container {
  2. // Public members might be modified externally
  3. public publicMember: boolean = true;
  4. // Protected members might be modified by child classes
  5. protected protectedMember: number = Number.MAX_VALUE;
  6. // This is modified later on by the class
  7. private modifiedLater = 'unchanged';
  8. public mutate() {
  9. this.modifiedLater = 'mutated';
  10. }
  11. }

反例

收起
自动换行
深色代码主题
复制
  1. export class Container {
  2. // These member variables could be marked as readonly
  3. private neverModifiedMember = true;
  4. private onlyModifiedInConstructor: number;
  5. // Private parameter properties can also be marked as readonly
  6. private neverModifiedParameter: string;
  7. public constructor(
  8. onlyModifiedInConstructor: number,
  9. // Private parameter properties can also be marked as readonly
  10. neverModifiedParameter: string,
  11. ) {
  12. this.neverModifiedParameter = neverModifiedParameter;
  13. this.onlyModifiedInConstructor = onlyModifiedInConstructor;
  14. }
  15. }

规则集

收起
自动换行
深色代码主题
复制
  1. plugin:@typescript-eslint/all

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

搜索
请输入您想要搜索的关键词