mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
Merge pull request #21770 from yasupeke/add_events
Added types for events
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { EventEmitter } from 'events';
|
||||
|
||||
const emitter = new EventEmitter();
|
||||
const listener = () => {
|
||||
console.log('once');
|
||||
};
|
||||
const listener1 = () => {
|
||||
console.log('listener1');
|
||||
};
|
||||
const listener2 = () => {
|
||||
console.log('listener2');
|
||||
};
|
||||
const listener3 = (arg1: string) => {
|
||||
console.log('listener3', arg1);
|
||||
};
|
||||
const listener4 = () => {
|
||||
console.log('type of number');
|
||||
};
|
||||
|
||||
emitter.setMaxListeners(100);
|
||||
|
||||
emitter.addListener('send', listener1);
|
||||
|
||||
emitter.on('send', listener2);
|
||||
|
||||
emitter.on('send', listener3);
|
||||
|
||||
emitter.once('send', listener);
|
||||
|
||||
emitter.once(1, listener4);
|
||||
|
||||
emitter.listeners('send');
|
||||
emitter.listenerCount('send');
|
||||
|
||||
EventEmitter.defaultMaxListeners = 100;
|
||||
console.log(`count(static): ${EventEmitter.listenerCount(emitter, 'send')}`);
|
||||
console.log(`ncount: ${emitter.listenerCount('send')}`);
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('\n');
|
||||
emitter.emit('send');
|
||||
}, 1000);
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('\n');
|
||||
emitter.emit('send');
|
||||
emitter.removeListener('send', listener2);
|
||||
}, 2000);
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('\n');
|
||||
emitter.emit('send', 'params1');
|
||||
emitter.removeAllListeners('send');
|
||||
}, 3000);
|
||||
|
||||
setTimeout(() => {
|
||||
console.log('\n');
|
||||
emitter.emit(1);
|
||||
emitter.emit('send');
|
||||
}, 3000);
|
||||
Vendored
+21
@@ -0,0 +1,21 @@
|
||||
// Type definitions for events 1.1
|
||||
// Project: https://github.com/Gozala/events
|
||||
// Definitions by: Yasunori Ohoka <https://github.com/yasupeke>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
export type Listener = (...args: any[]) => void;
|
||||
|
||||
export class EventEmitter {
|
||||
static listenerCount(emitter: EventEmitter, type: string | number): number;
|
||||
static defaultMaxListeners: number;
|
||||
|
||||
setMaxListeners(n: number): this;
|
||||
emit(type: string | number, ...args: any[]): boolean;
|
||||
addListener(type: string | number, listener: Listener): this;
|
||||
on(type: string | number, listener: Listener): this;
|
||||
once(type: string | number, listener: Listener): this;
|
||||
removeListener(type: string | number, listener: Listener): this;
|
||||
removeAllListeners(type: string | number): this;
|
||||
listeners(type: string | number): Listener[];
|
||||
listenerCount(type: string | number): number;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"events-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user