TypeScript vscode 源码 参数类型 不解

 export function fromNodeEventEmitter<T>(emitter: NodeEventEmitter, eventName: string, map: (...args: any[]) => T = id => id): Event<T> {
     const fn = (...args: any[]) => result.fire(map(...args));
     const onFirstListenerAdd = () => emitter.on(eventName, fn);
     const onLastListenerRemove = () => emitter.removeListener(eventName, fn);
     const result = new Emitter<T>({ onFirstListenerAdd, onLastListenerRemove });

     return result.event;
 }

map: (...args: any[]) => T = id => id) id是什么意思,怎么是这样写的 = id => id

阅读 2.3k
2 个回答

补充:
由于 function fromNodeEventEmitter<T>(emitter: NodeEventEmitter, eventName: string, map: (...args: any[]) => T = id => id): Event<T> 参数 map 定义了默认类型,所以它将会同是可选的
image.png
也造成了 可以写成先传发射器与事件名并给一个变量,就达成一个

  • 新命名
  • 被包装
  • 可放入函数参数
const onHello = Event.fromNodeEventEmitter<Electron.WebContents>(ipcMain, 'ipc:hello');
// 此时就注册了监听:'ipc:hello'事件的一个回调函数。
const remove = onHello(() => console.log('注册了一个关于`ipc:hello`事件的回调'));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进