如何设置拒绝承诺的类型?假设我这样做:
const start = (): Promise<string> => {
return new Promise((resolve, reject) => {
if (someCondition) {
resolve('correct!');
} else {
reject(-1);
}
});
}
假设我想用一个号码拒绝。但我无法设置类型;我可以将任何我想要的东西传递给reject
here.
此外,当使用这个承诺时,如果我错误地使用拒绝响应类型,我希望出现编译错误。
正如中所解释的这个问题 https://github.com/Microsoft/TypeScript/issues/7588#issuecomment-199079907, Promise
对于已履行和已拒绝的承诺没有不同的类型。reject
accepts any争论 https://github.com/Microsoft/TypeScript/blob/v2.8.3/src/lib/es2015.promise.d.ts#L175-L187这不会影响承诺的类型。
现在Promise
无法更好地打字。这是因为承诺可以被拒绝throw
里面then
or catch
(这是拒绝现有承诺的更好方法),并且这不能通过打字系统处理;还,TypeScript 也没有特定于异常的类型,除了never https://stackoverflow.com/a/49435648/3731501.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)