如何在对象文字中专门化泛型类型?

ylc395
// a.ts
interface Config {
    selector?: <T>(httpResponse: HttpResponse<T>) => unknown;
}

export function factory(options: Config): something {
    // use options to return something
}

// another file b.ts
// I have a type for res only here(b.ts), and I want to use it to specialize type T

import { factory } from 'a.ts';

factory({
    selector: res => res.data.data; // error: Property 'data' does not exist on type 'T'
});

我的问题是:如何在config对象文字中传递指定的类型,以便可以泛化类型T?

d

factory以通用的功能,我们可以通过的“T”factoryConfig什么也是一个通用的对象。

Config接口开始,使其成为通用接口。

interface Config<T> { // Generically for whole interface
    selector?: (httpResponse: HttpResponse<T>) => unknown;
}

接下来,factory功能:

export function factory<T>(options: Config<T>): something { // return type is "T" or something ?
    // use options to return something
}

我们将类型“ T”从传递factoryConfig

最后是一个例子:

b.ts

export type ApiResponse = {
    data: {
        username: string;
    }
}

工厂用途

factory<ApiResponse>({
    selector: res => res.data.data.username, // typehint for the `res`, I try with HttpResponse is AxiosResponse
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在模板类中专门化模板成员函数?

来自分类Dev

在 PureScript 中专门化类实例

来自分类Dev

如何同时专门化泛型和测试可选的一行?

来自分类Dev

在模板化类中专门化模板化结构

来自分类Dev

在模板化类中专门化方法的正确方法

来自分类Dev

无法在线程中专门化功能模板

来自分类Dev

如何在任意依赖类型上专门化模板

来自分类Dev

如何专门化(重载)单个类型的功能行为?

来自分类Dev

Scala泛型:专门化一种方法

来自分类Dev

如何在Perl中专门读取文件?

来自分类Dev

在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

来自分类Dev

如何在TypeScript中使用泛型类型初始化对象?

来自分类Dev

在Swift中,返回相同类型的函数的泛型函数使我“无法显式专门化泛型函数”

来自分类Dev

如何专门针对特定泛型类型的方法?

来自分类Dev

在名称空间中专门化模板-名称空间别名真的是别名吗?

来自分类Dev

C#从派生接口中的继承接口中专门化通用接口

来自分类Dev

如何专门化模板子类?

来自分类Dev

如何专门化模板成员函数?

来自分类Dev

如何基于类型相关的类型专门化C ++模板类函数?

来自分类Dev

选择字符串文字类型以进行模板专门化

来自分类Dev

如何在Java中实例化泛型类型?

来自分类Dev

如何在 TypeScript 中实例化泛型类型?

来自分类Dev

如何使C ++模板化函数与返回类型无关,以便将来进行专门化

来自分类Dev

如何在泛型类中返回对象的泛型类型?

来自分类Dev

部分专门化类型特征时,如何使用std :: decay?

来自分类Dev

如何专门化采用任何类型的模板以允许可变长度数组

来自分类Dev

如何在0个可变参数上专门化可变模板类?

来自分类Dev

如何在* .cpp文件中实现模板专门化方法?

来自分类Dev

无法专门化非通用类型'UIViewController'

Related 相关文章

  1. 1

    如何在模板类中专门化模板成员函数?

  2. 2

    在 PureScript 中专门化类实例

  3. 3

    如何同时专门化泛型和测试可选的一行?

  4. 4

    在模板化类中专门化模板化结构

  5. 5

    在模板化类中专门化方法的正确方法

  6. 6

    无法在线程中专门化功能模板

  7. 7

    如何在任意依赖类型上专门化模板

  8. 8

    如何专门化(重载)单个类型的功能行为?

  9. 9

    Scala泛型:专门化一种方法

  10. 10

    如何在Perl中专门读取文件?

  11. 11

    在C ++ 11中,我如何专门化基于返回类型接受函数对象的函数模板?

  12. 12

    如何在TypeScript中使用泛型类型初始化对象?

  13. 13

    在Swift中,返回相同类型的函数的泛型函数使我“无法显式专门化泛型函数”

  14. 14

    如何专门针对特定泛型类型的方法?

  15. 15

    在名称空间中专门化模板-名称空间别名真的是别名吗?

  16. 16

    C#从派生接口中的继承接口中专门化通用接口

  17. 17

    如何专门化模板子类?

  18. 18

    如何专门化模板成员函数?

  19. 19

    如何基于类型相关的类型专门化C ++模板类函数?

  20. 20

    选择字符串文字类型以进行模板专门化

  21. 21

    如何在Java中实例化泛型类型?

  22. 22

    如何在 TypeScript 中实例化泛型类型?

  23. 23

    如何使C ++模板化函数与返回类型无关,以便将来进行专门化

  24. 24

    如何在泛型类中返回对象的泛型类型?

  25. 25

    部分专门化类型特征时,如何使用std :: decay?

  26. 26

    如何专门化采用任何类型的模板以允许可变长度数组

  27. 27

    如何在0个可变参数上专门化可变模板类?

  28. 28

    如何在* .cpp文件中实现模板专门化方法?

  29. 29

    无法专门化非通用类型'UIViewController'

热门标签

归档