是否可以在现有d.ts文件中添加自定义重载?
我使用Bluebird Promise.all和6个项目的数组。定义文件包含5个项目:
static all<T1, T2, T3, T4, T5>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3, Bluebird.Thenable<T4> | T4, Bluebird.Thenable<T5> | T5]): Bluebird<[T1, T2, T3, T4, T5]>;
static all<T1, T2, T3, T4>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3, Bluebird.Thenable<T4> | T4]): Bluebird<[T1, T2, T3, T4]>;
static all<T1, T2, T3>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2, Bluebird.Thenable<T3> | T3]): Bluebird<[T1, T2, T3]>;
static all<T1, T2>(values: [Bluebird.Thenable<T1> | T1, Bluebird.Thenable<T2> | T2]): Bluebird<[T1, T2]>;
static all<T1>(values: [Bluebird.Thenable<T1> | T1]): Bluebird<[T1]>;
我不认为拉取请求对于我的单个用例是必要的,并且想要添加定义文件,以便在我上传到ElasticBeanstalk时编译不会失败。
我需要的是添加
的能力static all<T1, T2, T3, T4, T5, T6>(values: ...
仅适用于我的项目。
替代地;我可以强制使用Typescript来忽略这个单一的&#34;错误&#34;?
答案 0 :(得分:0)
据我所知,没有办法合并声明。 我遇到了同样的问题,我能想出的唯一解决方案是创建这种类型:
type TPromiseAll6 = <T1, T2, T3, T4, T5, T6>(values: [
Promise.Thenable<T1>,
Promise.Thenable<T2>,
Promise.Thenable<T3>,
Promise.Thenable<T4>,
Promise.Thenable<T5>,
Promise.Thenable<T6>
]) => Promise<[T1, T2, T3, T4, T5, T6]>;
你的电话应该是这样的:
(Promise.all as TPromiseAll6)([...]);
这也适用于类型推断。