@liuli-util/other
Install using
npm install @liuli-util/other
You can access these members by importing the module:
import { member } from '@liuli-util/other';
EventEmitter
class
EventEmitter
<
Events
: Record<EventType, any[]>
>
事件总线
实际上就是发布订阅模式的一种简单实现
类型定义受到 https://github.com/andywer/typed-emitter/blob/master/index.d.ts
的启发,不过只需要声明参数就好了,而不需要返回值(应该是 {@code void})
add (...)
function add
<
E
: keyof Events
>
(
type
:
E
,
callback
:
CallbackFunc<Events[E]>
)
:
any
添加一个事件监听程序
@param:
type 监听类型
@param:
callback 处理回调
@returns:
{@code this}
remove (...)
function remove
<
E
: keyof Events
>
(
type
:
E
,
callback
:
CallbackFunc<Events[E]>
)
:
any
移除一个事件监听程序
@param:
type 监听类型
@param:
callback 处理回调
@returns:
{@code this}
removeByType (...)
function removeByType
<
E
: keyof Events
>
(
type
:
E
)
:
any
移除一类事件监听程序
@param:
type 监听类型
@returns:
{@code this}
emit (...)
function emit
<
E
: keyof Events
>
(
type
:
E
,
...
args
:
Events[E]
)
:
any
触发一类事件监听程序
@param:
type 监听类型
@param:
args 处理回调需要的参数
@returns:
{@code this}
listeners (...)
function listeners
<
E
: keyof Events
>
(
type
:
E
)
:
any
获取一类事件监听程序
@param:
type 监听类型
@returns:
一个只读的数组,如果找不到,则返回空数组 {@code []}