数组的类型定义

时间:2019-08-30 16:09:24

标签: typescript typedef typescript-generics

这里是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会将其强调为错误)

请告诉我是否应该澄清一下,否则您需要更多信息!

0 个答案:

没有答案