typescript - TypeScript 中的可变参数方法至少需要一个参数
问题描述
我有这样的方法:
getValues(...args: Array<string>) : Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
我使用这样的方法:
const c = b.getValues(); // compiles
在我的情况下,不传递任何参数实际上是不正确的,只有至少传递一个参数才有意义。
有没有办法告诉 TypeScript 至少需要传递一个参数?
解决方案
您可以添加一个具有强制参数的重载,以强制调用者指定至少一个值,但仅使用一个 rest 参数来保持实现签名(保持您的实现相同)
getValues(mandatory: string, ...args: Array<string>): Array<any>
getValues(...args: Array<string>): Array<any> {
return args.map(k => {
return this.shared.get(k);
});
}
推荐阅读
- python - Scrapy Logging:以不同方式格式化 statscollectors 时间戳
- docker - 尝试从命令 ./redis-cli --cluster call 54.xx.xx.xx:7000 keys "*" 获取 redis 密钥时出错
- r - 将图形/表格标题和标签放在图形/表格的正上方,以避免多余的空白
- java - 使用视图绑定扩展基本活动的 Android 活动
- javascript - 拒绝获取不安全的标题“年龄”
- javascript - 开头没有空格 + 中间留有空格
- javascript - 错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。反应
- python - 如何使用“包含”从带有 Selenium 的网站获取多个 Xpath?
- javascript - 为什么它显示“onclick”不可扩展
- python - 使用管道传输 STDIN 时如何在 Python 中禁用 TTY 回显