diff --git a/types/micro-events/index.d.ts b/types/micro-events/index.d.ts new file mode 100644 index 0000000000..a9c046cb6f --- /dev/null +++ b/types/micro-events/index.d.ts @@ -0,0 +1,22 @@ +// Type definitions for micro-events 1.0 +// Project: https://github.com/alexanderGugel/micro-events +// Definitions by: Alexander Sychev +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.4 + +/** Event emitter class */ +declare class MicroEventEmitter { + /** Max listeners count */ + maxListeners: number; + /** Attach listener */ + on(type: string, handler: MicroEventEmitter.EventHandler): MicroEventEmitter; + /** Detach listener */ + off(type: string, handler?: MicroEventEmitter.EventHandler): MicroEventEmitter; + /** Trigger event */ + emit(type: string, ...arguments: any[]): MicroEventEmitter; +} +declare namespace MicroEventEmitter { + /** Event handler function signature */ + type EventHandler = (...args: any[]) => any; +} +export = MicroEventEmitter; diff --git a/types/micro-events/micro-events-tests.ts b/types/micro-events/micro-events-tests.ts new file mode 100644 index 0000000000..3d8ac6f4d0 --- /dev/null +++ b/types/micro-events/micro-events-tests.ts @@ -0,0 +1,13 @@ +import * as EventEmitter from "micro-events"; + +const myEventEmitter = new EventEmitter(); + +myEventEmitter.maxListeners; // $ExpectType number + +const listener = (first: string) => {}; + +myEventEmitter.on('foo', listener); // $ExpectType MicroEventEmitter + +myEventEmitter.emit('foo', 'bar'); // $ExpectType MicroEventEmitter + +myEventEmitter.off('foo', listener); // $ExpectType MicroEventEmitter diff --git a/types/micro-events/tsconfig.json b/types/micro-events/tsconfig.json new file mode 100644 index 0000000000..a42efbcba0 --- /dev/null +++ b/types/micro-events/tsconfig.json @@ -0,0 +1,24 @@ + +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "micro-events-tests.ts" + ] +} diff --git a/types/micro-events/tslint.json b/types/micro-events/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/micro-events/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file