我有一个案例,我正在传递解决方案并将Promise函数作为委托拒绝到另一个函数中:
//The function
someFunc(x, y, resolve, reject);
但是我无法以不会引发以下错误的方式创建我的界面:
Argument of type '(value?: {} | PromiseLike<{}>) => void' is not assignable to parameter of type '(reason?: any) => Promise<void>'.
类型'void'不能分配给'Promise'类型。
我的界面目前如下:
someFunc(prop1: string, prop2: string, callingFunctionResolve?: Promise<void>, callingFunctionReject?: Promise<void>);
我也试过了,但收到了一个不同的错误:
callingFunctionResolve(reason: any)?: Promise<void>, callingFunctionReject(reason?: any)?: Promise<void>)
A parameter initializer is only allowed in a function or constructor implementation.
目前在Typescript中有一种方法可以用这种方式完成委托吗?我已经看到了一些建议,但没有发现任何有用的东西,或者是这种用例的确切类型。
答案 0 :(得分:0)
您可以查看lib.es6.d.ts文件,找出解决/拒绝功能的签名 它们在PromiseConstructor:
中定义<a [routerLink]="['/Home/ViewUserDetails','View Channel User']">View Channel User</a>
所以你的功能应该是:
interface PromiseConstructor {
...
new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
...
}
然后你可以:
function someFunc(
prop1: string,
prop2: string,
callingFunctionResolve?: (value?: void | PromiseLike<void>) => void,
callingFunctionReject?: (reason?: any) => void) { }