Skip to content

readonly 只读

表示 变量、属性 是只读的,不能进行修改、删除、添加等操作

  1. 类型属性只读
ts
interface Pagination {
  pageSize: number
  current: number
  readonly total: number // 只读不能操作
  readonly pageNumber: number // 只读不能操作
}

let page = {
  pageSize: 10,
  current: 1,
  total: 100, // 只读不能操作
  pageNumber: 10, // 只读不能操作
}

page.current = 2 // √
// 不能修改
page.total = 88 // ×
  1. 变量只读
ts
let list: readonly number[] = [1, 2, 3]

list.push(1) // 错误的
list.pop() // 错误的

拓展

  1. 高级类型 Readonly<T>

eslint-typescript

  1. prefer-readonly

  2. prefer-readonly-parameter-types

prefer-readonly-parameter-types

json
module.exports = {
  "rules": {
    "@typescript-eslint/prefer-readonly-parameter-types": "warn"
  }
};