具有“回调类型”的TypeScript索引类型约束工作不正确?

雅夸瓦

我不明白为什么这会给我一个错误(使用编译器选项"strict": true)。

class EventX {
  public type: string

  constructor(type: string) {
    this.type = type
  }
}

class ClickEvent extends EventX {
  public x: number

  constructor(type: string, x: number) {
    super(type);
    this.x = x;
  }
}

interface Events {
  [eventType: string]: (event: EventX) => any

  click: (e: ClickEvent) => any  // TS2411: Property 'click' of type '(e: ClickEvent) => any' is not assignable to string index type '(event: EventX) => any'.
}

顺便说一下,这很好

interface Events {
  [eventType: string]: EventX

  click: ClickEvent
}

所以我认为这是(event: EventX) => any造成问题的原因。但是,这怎么了?我该如何解决?

埃里亚斯·舍布洛夫斯基(Elias Schablowski)

问题在于索引签名必须包含值可能具有的所有可能的类型:

interface Events {
    click: (event: ClickEvent) => any;
    [eventType: string]: ((event: EventX) => any) | ((event: ClickEvent) => any);
}

这是由于所有键都包含在索引签名中[x: string],因此检查了所有键的一致性-并且由于(event:ClickEvent)=> any不能分配给(event:EventX)=> any,因此会引发错误

编辑:ZoltánMihályi有一个更好的解释。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Typescript函数/回调类型:将函数赋值为“错误”时,没有错误

来自分类Dev

TypeScript:Promise.all中的类型推断不正确

来自分类Dev

如何解决 PouchDB 的不正确 (?) TypeScript/DefinitelyTyped 类型?

来自分类Dev

尽管数据类型相同,但“外键约束形成不正确”

来自分类Dev

错误:不正确的属性值类型module.network.private_subnets [0]是具有3个元素的元组

来自分类Dev

reCAPTCHA-密钥类型不正确

来自分类Dev

数据类型不正确

来自分类Dev

为什么返回类型不正确

来自分类Dev

Scala多态回调类型不匹配

来自分类Dev

具有自动布局约束的UITableViewCell子类大小不正确

来自分类Dev

具有多个离线约束的ALTER TABLE的铁路图不正确?

来自分类Dev

Typescript中具有泛型的子类型约束

来自分类Dev

AutomatedWorkflowActionException:在Hybris中为自动化工作流程定义的类型不正确

来自分类Dev

Angular 2 Typescript 类属性允许分配不正确的类型

来自分类Dev

约束动画不正确

来自分类常见问题

具有捕获和接受属性的HTML文件输入控件工作不正确?

来自分类Dev

Typescript-具有通用类型函数的索引签名

来自分类Dev

Typescript从具有泛型类型的对象索引调用函数

来自分类Dev

Rocket UNIVERSE数据库中带有查询的“数据类型不正确”

来自分类Dev

C ++ Eclipse说无效的参数(类型不正确)

来自分类Dev

捕获“缺少或不正确的CSRF cookie类型。” 例外

来自分类Dev

Javascript从输入类型日期返回不正确的日期

来自分类Dev

VB:单个数据类型不正确的添加

来自分类Dev

熊猫:类型转换返回不正确的值

来自分类Dev

RetryCallback类型的参数数目不正确

来自分类Dev

Firebird数据类型列字段不正确

来自分类Dev

不利于类型不正确的空列表

来自分类Dev

为什么Scala说类型匹配不正确?

来自分类Dev

过滤后显示不正确的RecyclerView项目类型

Related 相关文章

  1. 1

    Typescript函数/回调类型:将函数赋值为“错误”时,没有错误

  2. 2

    TypeScript:Promise.all中的类型推断不正确

  3. 3

    如何解决 PouchDB 的不正确 (?) TypeScript/DefinitelyTyped 类型?

  4. 4

    尽管数据类型相同,但“外键约束形成不正确”

  5. 5

    错误:不正确的属性值类型module.network.private_subnets [0]是具有3个元素的元组

  6. 6

    reCAPTCHA-密钥类型不正确

  7. 7

    数据类型不正确

  8. 8

    为什么返回类型不正确

  9. 9

    Scala多态回调类型不匹配

  10. 10

    具有自动布局约束的UITableViewCell子类大小不正确

  11. 11

    具有多个离线约束的ALTER TABLE的铁路图不正确?

  12. 12

    Typescript中具有泛型的子类型约束

  13. 13

    AutomatedWorkflowActionException:在Hybris中为自动化工作流程定义的类型不正确

  14. 14

    Angular 2 Typescript 类属性允许分配不正确的类型

  15. 15

    约束动画不正确

  16. 16

    具有捕获和接受属性的HTML文件输入控件工作不正确?

  17. 17

    Typescript-具有通用类型函数的索引签名

  18. 18

    Typescript从具有泛型类型的对象索引调用函数

  19. 19

    Rocket UNIVERSE数据库中带有查询的“数据类型不正确”

  20. 20

    C ++ Eclipse说无效的参数(类型不正确)

  21. 21

    捕获“缺少或不正确的CSRF cookie类型。” 例外

  22. 22

    Javascript从输入类型日期返回不正确的日期

  23. 23

    VB:单个数据类型不正确的添加

  24. 24

    熊猫:类型转换返回不正确的值

  25. 25

    RetryCallback类型的参数数目不正确

  26. 26

    Firebird数据类型列字段不正确

  27. 27

    不利于类型不正确的空列表

  28. 28

    为什么Scala说类型匹配不正确?

  29. 29

    过滤后显示不正确的RecyclerView项目类型

热门标签

归档