gpt4 book ai didi

typescript - 是否可以重用某些类的泛型的类型参数

转载 作者:行者123 更新时间:2023-12-02 00:49:11 25 4
gpt4 key购买 nike

例如我有以下代码

    class Foo {
bar: Promise<string[]>;

// a is the same type as type of promise in bar
baz(a: ????): Foo['bar'] {
// some code
return Promise.resolve(a);
}
}

我可以获得 bar 的类型 - 但我想在不创建额外类型或接口(interface)的情况下获取 promise 中的类型。

我搜索了很多,我认为这还没有实现或建议,但在创建功能请求之前我想确定一下。

最佳答案

你可以做到,但是你需要一个条件类型来通过infer从泛型类中提取类型参数。 :

type UnboxPromise<T extends Promise<any>> = T extends Promise<infer U> ? U : never;
class Foo {
bar: Promise<string[]>;

// a is the same type as type of promise in bar
baz(a: UnboxPromise<Foo['bar']>): Foo['bar'] {
// some code
return Promise.resolve(a);
}
}

Playground Link

关于typescript - 是否可以重用某些类的泛型的类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com