我正在使用Typescript和AngularJS。这是我在做什么的一个例子:
我有这个:
this.userService.registerUser(
this.registerData.userName,
() => {
self.registerData.error = false;
self.registerData.message = self.registerData.userName + " has been registered";
self.clearRegisterData();
})
}
我调用的函数是:
registerUser = (
userName: string,
successCallback) => { // << What's the type of successCallback ????????
this.$http({
method: 'POST',
url: "/api/Account/Register",
data: {
userName: userName,
firstName: firstName,
lastName: lastName,
email: email,
password: password,
confirmPassword: confirmPassword
}
})
.success((data) => {
if (typeof successCallback === 'function') {
successCallback(data);
}
});
};
我只是显示代码的一部分,但我想知道什么是successCallback参数的类型?参数必须是一个函数,但是我应该定义一些特殊方法吗?另外,如果定义正确,我是否可以假设没有必要检查“ typeof successCallback ==='function'”?
您可以轻松地内联完成
registerUser = (
userName: string,
successCallback: (data)=>any) => {
基本上,您说的是可以接受一些数据参数,而我不在乎它返回什么。
你应该做:
registerUser = (
userName: string):ng.IPromise<any> => { // No callback
return this.$http({ // RETURN the promise
method: 'POST',
url: "/api/Account/Register",
data: {
userName: userName,
firstName: firstName,
lastName: lastName,
email: email,
password: password,
confirmPassword: confirmPassword
}
})
};
然后在呼叫站点上使用它:
this.userService.registerUser(this.registerData.userName)
.then(() => { // Note `then`
self.registerData.error = false;
self.registerData.message = self.registerData.userName + " has been registered";
self.clearRegisterData();
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句