文档管理中心

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

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

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

规则配置

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

正例

收起
自动换行
深色代码主题
复制
  1. const index = 0;
  2. export function array1(arg: readonly string[]): void {
  3. console.info(`${arg[index]}`);
  4. }
  5. export function array2(arg: readonly (readonly string[])[]): void {
  6. console.info(`${arg[index][index]}`);
  7. }
  8. export function array3(arg: readonly [string, number]): void {
  9. console.info(`${arg[index][index]}`);
  10. }
  11. export function array4(arg: readonly [readonly string[], number]): void {
  12. console.info(`${arg[index][index]}`);
  13. }
  14. export function primitive1(arg: string): void {
  15. console.info(`${arg}`);
  16. }
  17. export function primitive2(arg: number): void {
  18. console.info(`${arg}`);
  19. }
  20. export function primitive3(arg: boolean): void {
  21. console.info(`${arg}`);
  22. }
  23. export function primitive5(arg: null): void {
  24. console.info(`${arg}`);
  25. }
  26. export function primitive6(arg: undefined): void {
  27. console.info(`${arg}`);
  28. }

反例

收起
自动换行
深色代码主题
复制
  1. const index = 0;
  2. export function array1(arg: string[]): void {
  3. console.info(`${arg[index]}`);
  4. }
  5. export function array2(arg: (string[])[]): void {
  6. console.info(`${arg[index][index]}`);
  7. }
  8. export function array3(arg: [string, number]): void {
  9. console.info(`${arg[index][index]}`);
  10. }
  11. export function array4(arg: [string[], number]): void {
  12. console.info(`${arg[index][index]}`);
  13. }

规则集

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

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

在 指南 中进行搜索
请输入您想要搜索的关键词