ReadonlyArray 会把常用于需要确保数组不被意外修改的场景,以增强代码的安全性和可预测性。
readonly vs const
readonly(用于接口中的属性):
应用于对象的属性,表现该属性在对象创建后不能被重新赋值。
interface Person {
readonly name: string;
}
let person: Person = { name: "张三" };
// 无法为“name ”重新赋值,因为它是只读属性。
person.name = "李四";
let mutablePerson = person;
// 无法为“name ”重新赋值,因为它是只读属性。
mutablePerson.name = "李四";
复制代码
把 person 赋值给了 mutablePerson,mutablePerson 现实上和 person 指向的是同一个对象。
由于 Person 接口中定义了 name 为只读属性,所以无论是通过 person 还是 mutablePerson 来尝试修改 name 的值,都是不被允许的,都会触发类型检查错误,提示不能对只读属性举行重新赋值。
这体现了 TypeScript 对接口中只读属性的严酷类型检查,确保了在任何对该对象的操作中,都遵循了只读属性的约束。
声明变量 sum ,其类型为 MathOperation 。
接下来,将一个匿名函数赋值给 sum 。这个匿名函数接受两个数字参数 x 和 y,并返回它们的和,符合 MathOperation 接口定义的函数结构。
对于函数类型的类型检查来说,函数的参数名不需要与接口里定义的名字相匹配。
参数 x 和 y可以用其他变量代替。