Attempt at importing an external module in typescript
declare module 'emitter20' {
function Emitter(): Emitter.IEmitter;
namespace Emitter {
interface IEmitter {
on: (eventName: string, cb: (data?: any) => void) => void;
trigger: (eventName: string, data?: any) => void;
}
}
export = Emitter;
}
module.exports = function() {
var subscribers = []
return {
on: function (eventName, cb) {
subscribers.push({
eventName: eventName,
cb: cb
})
},
trigger: function (eventName, data) {
subscribers
.filter(function (subscriber) {
return subscriber.eventName === eventName
})
.forEach(function (subscriber) {
subscriber.cb(data)
})
}
}
}
import * as emitter from 'emitter20';
var emitterInstance : emitter.IEmitter = emitter();
emitterInstance.on("event", (data : any) => {
console.log(data.foo);
})
emitterInstance.trigger("event", {"foo": "bar"});
{
"devDependencies": {
"typescript": "^1.8.10"
}
}