我在Node应用程序中使用这个名为 promise.prototype.finally的ES6 Promise兼容最终实现,我希望将其转换为TypeScript,但是我在 DefinitelyTyped上找不到这个包的可用类型.在这些情况下我写了我自己的即
可能相关:
> https://github.com/Microsoft/TypeScript/issues/280
> https://github.com/Microsoft/TypeScript/issues/7015
> https://github.com/Microsoft/TypeScript/issues/6722
> Declaration merging with ES6 style modules
不幸的是typings on DefinitelyTyped目前不支持垫片功能所以until this is supported,我建议你自己添加这些打字机.
declare interface Promise<T> { finally<U>(onFinally?: () => U | Promise<U>): Promise<U>; } declare module 'promise.prototype.finally' { export function shim(): void; }
这些类型现在可用.安装时
npm install --save-dev @types/promise.prototype.finally
在TypeScript代码中,在应用程序引导期间,您可以调用
import { shim } from 'promise.prototype.finally'; shim();
这会将finally块添加到Promise原型中,允许您根据需要使用finally.