我想要一个返回数组的方法,但希望返回的数组为只读,这样当我尝试修改其内容时就会收到警告/错误提示。
function getList(): readonly number[] {
return [1,2,3];
}
const list = getList();
list[2] = 5; // This should result in a compile error, the returned list should never be changed
这个能在 TypeScript 中实现吗?
Readonly<number[]>
存在一个问题。我不能再使用for...of
,因为类型必须具有返回迭代器的方法。 - XCSa => Object.freeze(a);
将a
数组转换为浅不可变。尝试更改或删除其项似乎会在严格模式下抛出“类型错误”,但在其他情况下则会默默失败。如果其中任何一个项目是引用类型,则除非您递归地冻结它们,否则它将保持可变。 - Redu