typescript - 不可变函数参数打字稿
问题描述
有没有办法在函数参数的打字稿中获得不变性?(与 java 和 final 相同)
例子:
function add(a: number, b: number): number {
a = 5; // possible
return a + b;
}
而我正在寻找的,例如:
function add(a: ???, b: ???): number {
a = 5; // not possible because it would be immutable
return a + b;
}
如果一个函数可以修改我的参数,我正在搜索这个是因为清楚。
解决方案
这有点hacky,但你可以像这样执行它
function add(...params: readonly [a: number, b: number]): number {
const [a, b] = params;
a = 5;
//^^^^^
//Cannot assign to 'a' because it is a constant.
return a + b;
}
a
现在b
是const
蚂蚁,因此是不可变的。
但是请注意,params
这readonly
只会阻止您执行诸如推送或拼接元组数组之类的操作。它不会阻止您完全重新分配数组
推荐阅读
- android - 如何在不下载本地存储的情况下显示来自 AWS S3 的图像
- amazon-cloudsearch - aws cloudsearch upload文档返回签名不匹配
- machine-learning - 在强化学习中定义状态、Q 和 R 矩阵
- javascript - 用不同的颜色填充每个单元格
- nativescript - 在 nativescript 中安装 nativescript-messenger 后出现 javax.net.ssl.SSLException
- php - 如何检测哪个函数使用 cpu 最多?
- chef-infra - 文件中的厨师刀环境无法识别较旧的食谱版本
- web-scraping - 如何从 Squawka 中获取这些玩家评分
- python - 没有名为 googleapiclient.discovery 的模块
- android - 如果 StreetView 不适用于指定的 latlong,如何获取最近的可用 StreetView?