TypeScript 和 void Q promises

TypeScript and void Q promises

如果 Q promises 无效,TypeScript 1.6 的正确使用方法是什么?也就是说,它们不代表一个值。例如:

return Q.Promise<void>((resolve,reject) => {
    resolve();
}

let deferred = Q.defer<void>();
deferred.resolve();
return deferred.promise;

调用resolve()得到错误:

Supplied parameters do not match any signature of call target
(parameter) resolve: (val: void | Q.IPromise<void>) => void

注意,以下作品:

let deferred = Q.defer<string>();
deferred.resolve("Hello World");
return deferred.promise;

这可能只是 DefinitelyTyped 输入中的错误(截至撰写本文时已于 2015 年 8 月 17 日更新),还是我指定错误?

如果没有return值或者我不关心return值,我一直在用...

return Q.Promise<any>((resolve, reject) => {
  resolve();
}

对于带有 TS1.6 的 Q,我最终使用了:

return Q.Promise<void>((resolve,reject) => {
    resolve(null);
}