我有以下功能
private map(model: Model, id?: number, someVariable?:number) {... }
我的问题是,如果 id
存在,则 someVariable
必须存在。否则,该方法中的逻辑将不起作用,并且会出现异常。
解决方案之一是在一个类中设置这两个变量。但是,我想知道 typescript 是否有这样的功能。
我正在使用 Typescript 2.0.3。
最佳答案
您可以使用function overloading为此:
map(model: Model);
map(model: Model, id: number, someVariable:number);
map(model: Model, id?: number, someVariable?:number) {
//implementation
}
那么实际的实现签名是不可调用的:
this.map(m); //valid
this.map(m, 1, 2); //valid
this.map(m, 1); //error
关于typescript - 如何在 typescript 中用另一个参数约束可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39952624/