在JavaScript中,我们可以根据我们传递的参数数量调用一个函数,它将采用 undefined 而不会出现任何错误。请参阅以下代码段以供参考。
function test(a,b){
if(b){console.log(b)}
else{console.log('b is undefined')}
console.log(a)
}
test(5);
test(5,6);

在angular2中,我有一项名为DataWrapperService
的服务:
export class DataWrapperService {
constructor(private http: Http) { }
getData (URL,interval): Observable<any> {
if(interval){
return Observable
.interval(interval)
.flatMap(() => return this.http.get(URL)
.map(this.extractData)
}else{
return this.http.get(URL)
.map(this.extractData)
}
}
private extractData (res: Response) {
let body = res.json();
return body || { };
}
}
&#13;
我正在测试组件中使用datawrapper服务。
export class TestComponent implements OnInit {
constructor(private dataWrapper : DataWrapperService) { }
ngOnInit() {
this.getTestData();
}
getTestData() {
this.dataWrapper.getData("http://localhost/test").subscribe(data => this.handleTestData(data)
}
handleTestData(data) {
console.log(data)
}
}
&#13;
当我尝试调用getData
只传递一个参数作为url时,TypeScript会抛出错误提供的参数与调用目标的任何签名都不匹配。
答案 0 :(得分:1)
要使函数参数可选,请添加“?”到函数签名中的参数。 例如:
func(param1:string, param2?:string) {}