typescript - 必需的参数需要在构造函数或函数调用中传递
问题描述
我有一个现有的 JS 类,我想通过严格的类型将其转换为 TS。简化的 JS 代码如下所示:
class Signer {
constructor (user) {
this.user = user
}
createSignature (user = this.user) {
if (!user) throw new TypeError('user required')
console.log(user)
}
}
user
参数在构造函数和方法中都是可选的,createSignature
但必须传入其中一个。例如,类的这两种用法都是有效的:
用户传入构造函数:
const signer = new Signer('joe')
signer.createSignature() // => "joe"
用户传入函数调用:
const signer = new Signer()
signer.createSignature('joe') // => "joe"
但是这种用法是无效的:
const signer = new Signer()
signer.createSignature() // throws TypeError
是否可以使用 Typescript 类型系统来表达这一点?
解决方案
推荐阅读
- javascript - 更改背景图像
在 CSS 中,取决于季节(春、夏、秋、冬) - svn - Plink SVN 用户名问题
- wkhtmltopdf - 页眉页脚随机消失/错误
- javascript - 页面加载后如何自动运行功能?
- python - Python - __init__ 子模块使用父包
- css - Bootstrap3.3.7.min.css 打破禁用按钮
- c# - 无法使用 XPath 获取 div 标签的内容
- azure-active-directory - 自定义 Azure Active Directory B2C 中 EditProfile 策略的本地登录页面
- javascript - 使用 CodeceptJS 时如何切换到新窗口
- c# - Linq:获取列表中的项目,该列表也在列表中