我想使用泛型为函数创建一个接口,这样函数接受两个参数,并返回第一个参数的类型或两个参数的并集。我原以为可以这样做:
declare interface CustomMerge { (x: Partial<T1>, y: Partial<T1 | T2>): T1 | T1 & T2; }
但是我在这里得到了各种各样的关于意外符号的错误,所以我怀疑到目前为止我所做的工作还远远不够。用typescript可以吗?
你必须申报 type variables 在任何地方使用它们之前,包括函数签名。为此,您有两个选项:
在方法级别声明
declare interface CustomMerge { <T1, T2>(x: Partial<T1>, y: Partial<T1 | T2>): T1 | T1 & T2; // ^^^^^^^^ }
在接口级别声明
declare interface CustomMerge<T1, T2> { // ^^^^^^^^ (x: Partial<T1>, y: Partial<T1 | T2>): T1 | T1 & T2; }