创建仅使用字符串键扩展接口的 TypeScript 泛型类型

dx_over_dt

我想创建一个通用类,它需要一个模板参数,该参数是一个只有字符串键的接口。

我以为我可以做类似的事情

class MyClass<T extends Record<string, object>> {
    sendEventData<TKey extends keyof T>(event: TKey, data: T[TKey]) {
        // ...
    }
}

但是,如果我像这样实例化它

interface MyEvents {
    someEvent: { foo: string }
}

const instanace = new MyClass<MyEvents>();

我收到编译错误:

Type 'MyEvents' does not satisfy the constraint 'Record<string, object>'.
  Index signature is missing in type 'MyEvents'.

如果我extends Record<string, object完全删除,它编译得很好,但它不会将它限制为字符串 => 对象的映射。

SLaks

Record<string, > 意味着它接受您不想要的任何键。

相反,写入T extends Record<string&keyof T, object>以将其限制为仅存在于类型上的键,并且也是字符串。

演示

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Typescript:泛型,使用泛型扩展类型

来自分类Dev

使用 TypeScript checkJs 在 JSDoc 中扩展泛型类型的方法?

来自分类Dev

TypeScript - 使用泛型创建自定义类型

来自分类Dev

生成生成器功能类型的接口的Typescript泛型

来自分类Dev

如何使用泛型缩小TypeScript联合类型

来自分类Dev

Typescript编译器使用泛型推断类型

来自分类Dev

使用泛型和构造函数的 TypeScript 类型转换?

来自分类Dev

Typescript泛型是否使用类型擦除来实现泛型?

来自分类Dev

泛型类型推断的 Typescript 泛型

来自分类Dev

Typescript - 使用泛型扩展具有联合类型属性的接口

来自分类Dev

在TypeScript中使用泛型扩展接口

来自分类Dev

TypeScript泛型创建实例

来自分类Dev

Typescript泛型扩展类和接口

来自分类Dev

每个项目的键之间具有相同泛型的Typescript数组式类型

来自分类Dev

无法在不丢失对象键类型的情况下将泛型引入Typescript方法

来自分类Dev

TypeScript泛型:可以使用圆形或自绑定类型变量吗?

来自分类Dev

TypeScript:在有界的泛型类型上使用Partial <T>的问题

来自分类Dev

如何在TypeScript中使用泛型在重载函数中进行类型转换

来自分类Dev

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

来自分类Dev

TypeScript泛型:参数类型推断

来自分类Dev

Typescript:从泛型类型获取文字值

来自分类Dev

Typescript中的默认泛型类型派生

来自分类Dev

TypeScript中泛型的深度条件类型

来自分类Dev

通过泛型缩小TypeScript索引类型

来自分类Dev

泛型类型的TypeScript函数重载

来自分类Dev

泛型类型断言(TypeScript 高级)

来自分类Dev

TypeScript typeof 泛型类的类型

来自分类Dev

TypeScript 中的泛型类型继承

来自分类Dev

Typescript我如何扩展使用泛型的接口?

Related 相关文章

  1. 1

    Typescript:泛型,使用泛型扩展类型

  2. 2

    使用 TypeScript checkJs 在 JSDoc 中扩展泛型类型的方法?

  3. 3

    TypeScript - 使用泛型创建自定义类型

  4. 4

    生成生成器功能类型的接口的Typescript泛型

  5. 5

    如何使用泛型缩小TypeScript联合类型

  6. 6

    Typescript编译器使用泛型推断类型

  7. 7

    使用泛型和构造函数的 TypeScript 类型转换?

  8. 8

    Typescript泛型是否使用类型擦除来实现泛型?

  9. 9

    泛型类型推断的 Typescript 泛型

  10. 10

    Typescript - 使用泛型扩展具有联合类型属性的接口

  11. 11

    在TypeScript中使用泛型扩展接口

  12. 12

    TypeScript泛型创建实例

  13. 13

    Typescript泛型扩展类和接口

  14. 14

    每个项目的键之间具有相同泛型的Typescript数组式类型

  15. 15

    无法在不丢失对象键类型的情况下将泛型引入Typescript方法

  16. 16

    TypeScript泛型:可以使用圆形或自绑定类型变量吗?

  17. 17

    TypeScript:在有界的泛型类型上使用Partial <T>的问题

  18. 18

    如何在TypeScript中使用泛型在重载函数中进行类型转换

  19. 19

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

  20. 20

    TypeScript泛型:参数类型推断

  21. 21

    Typescript:从泛型类型获取文字值

  22. 22

    Typescript中的默认泛型类型派生

  23. 23

    TypeScript中泛型的深度条件类型

  24. 24

    通过泛型缩小TypeScript索引类型

  25. 25

    泛型类型的TypeScript函数重载

  26. 26

    泛型类型断言(TypeScript 高级)

  27. 27

    TypeScript typeof 泛型类的类型

  28. 28

    TypeScript 中的泛型类型继承

  29. 29

    Typescript我如何扩展使用泛型的接口?

热门标签

归档