我需要一种输入对象的方法,其中键是特定类型的“事件”字段的值,值是回调数组,该数组采用相同类型数据子类型的对象。
我曾尝试使用映射类型,但我是打字稿的初学者并且真的很挣扎。
// 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