繁体   English   中英

从具有泛型类型的类数组中推断元组类型

[英]Infer tuple types from an array of classes with generic type

我有一个 function someFunction

function someFunction<T extends SomeClass<any>[]>(
  name: string,
  callback: (dependencyValues: any[]) => void,
  dependencies: T,

我希望dependencyValues是由dependencies中的值推断的元组。

例如:

someFunction(
    'someName', // name
    (dependencyValues: [number, boolean, string]) => { // callback
        ...
        ... do something
        ...
    }, 
    [new SomeClass<number>(), new SomeClass<boolean>(), new SomeClass<string>()] // dependencies
)

我需要在我的 function 定义中更改什么才能实现这一目标?

谢谢 !

我尝试使用它: Generic type wrapping in TypeScript for tuples但无法弄清楚如何在我的问题中使用它

使用可变元组类型,我们可以将T推断为元组,这意味着我们可以“循环” callback类型中的元组并推断其中的类型参数。

function someFunction<T extends SomeClass<any>[]>(
  name: string,
  callback: (dependencyValues: { [K in keyof T]: T[K] extends SomeClass<infer U> ? U : never }) => void,
  dependencies: [...T],
) {}

操场

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM