这里是TypeScript初学者。
我对函数具有以下类型定义:
type MappingCallback<A extends any[], B extends any[]> = (from: A[0], to: B[0]) => boolean
interface ArrayToCombine<A extends any[], B extends any[]> {
array: B
mapping: MappingCallback<A, B>
propertyName: string
}
declare function augmentArray<A extends any[], B extends any[], C extends any[]>(
base: A,
arrays: [ArrayToCombine<A, B>, ArrayToCombine<A, C>]
) : A
export default augmentArray
现在,如果我向arrays
参数添加另一个元素,我还必须向类型定义添加一个新的ArrayToCombine<A, ?>
元素才能正常工作。有没有办法使其动态化,因此数组列表中的每个元素都将继承正确的类型(该类型来自array
接口内的ArrayToCombine
属性)
(此外,您还可以看到我必须在每个通用类型上定义扩展any [],否则VSCode会将其强调为错误)
请告诉我是否应该澄清一下,否则您需要更多信息!