我有以下功能
private map(model: Model, id?: number, someVariable?:number) {... }
我的问题是如果id
存在,那么someVariable
必须存在。如果不是,则此方法中的逻辑将不起作用,并且将出现异常。
其中一个解决方案是在类中设置两个变量。但是,我想知道打字稿中是否有这样的功能。
我正在使用Typescript 2.0.3。
答案 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