github: https://github.com/Misaka-0x447f/createTypedEvent
npm: https://www.npmjs.com/package/@misaka17535/create-typed-event
相比其他事件库,首先是带类型,让用户能知道 payload 的类型;其次是函数式,不再需要手敲事件名。然后是 sub 函数自动返回 unsub 函数,不再必须传入 sub 时的 listener:
const misakaStateChange = createTypedEvent<{ selfDestructionInProgress: boolean }>() // returns unsub function without defining handler outside const unsub = misakaStateChange.sub((payload) => console.log(payload)) misakaStateChange.dispatch({selfDestructionInProgress: true}) unsub() >>> { selfDestructionInProgress: true }
另外还自带 react hook ,完美桥接 react 响应式变量,如果你想你也可以轻松写出其他响应式框架的版本。
是新包,但是已经在各种内部项目里用了两三年了,用过的同事都说好。
