typescript如何给EventEmitter重新声明类型?

问题描述

目前我在使用Electron框架开发桌面应用,基于Typescript
在调用ipc模块时,希望对他的参数进行限定(定义),但不知道该如何使用Typescript进行限定。

尝试过程

尝试以下方式进行重新声明,均无效果

import {ipcMain} from 'electron';

// 接口定义,IpcMain大写开头
interface IpcMain {
  on(channel: 'abc' | 'bbc', listener: Function): this;
}
// 接口定义,ipcMain小写开头
interface ipcMain {
  on(channel: 'abc' | 'bbc', listener: Function): this;
}
// 模块声明
declare module 'electron' {
  interface IpcMain  {
    on(channel: 'abc' | 'bbc', listener: Function): this;
  }
}


// 实际代码,希望控制第一个参数的类型限定为指定字符串
ipcMain.on('message', (event: Electron.Event, arg:any) => {
      console.log(arg);
    });
阅读 3.8k
1 个回答
interface ipcMain {
  on(channel: string, listener: (event, arg) => void): this;
}

或者

interface ICbListener
{
(event, arg): void
}
interface ipcMain {
  on(channel: string, listener: ICbListener): this;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题