小编JFo*_*ter的帖子

如何将联合类型指定为对象键 Typescript

我需要一种输入对象的方法,其中键是特定类型的“事件”字段的值,值是回调数组,该数组采用相同类型数据子类型的对象。

我曾尝试使用映射类型,但我是打字稿的初学者并且真的很挣扎。

// I have this type structure, where the event is always a string, but the data can be anything (but is constrained by the event)

interface EventTemplate {
  event: string;
  data: any;
}

export interface CreateEvent extends EventTemplate {
  event: 'create_game';
  data: {
    websocketID: 'string';
  };
}

export interface JoinEvent extends EventTemplate {
  event: 'join_game';
  data: {
    gameID: 'string';
  };
}

export interface MessageEvent extends EventTemplate {
  event: 'message';
  data: string;
}

export type WSEvent = …
Run Code Online (Sandbox Code Playgroud)

generic-type-argument typescript typescript-generics union-types

4
推荐指数
1
解决办法
6154
查看次数