0
現在、私はTypeScript
をチェックアウトしようとしています。私の古いJavaScript
-Sourceで名前ベースのオブジェクト配列を作成するには?
私はイベントリスナーのためのシンプルなnamebasedアレイ・オブジェクトを持っている:
let _events \t \t = {};
this.addEventListener = function addEventListener(name, callback) {
\t \t if(typeof(_events[name]) == 'undefined') {
\t \t \t _events[name] = [];
\t \t }
\t \t
\t \t _events[name].push(callback);
\t };
\t
\t this.fireEvent = function fireEvent() {
\t \t let fired \t = false;
\t \t let args \t = new Array();
\t \t let name \t = arguments[0];
\t \t
\t \t if(typeof(_events[name]) == 'undefined') {
\t \t \t return;
\t \t }
\t \t
\t \t for(var index = 1; index < arguments.length; index++) {
\t \t \t args.push(arguments[index]);
\t \t }
\t
\t \t _events[name].forEach(function onEvent(event) {
\t \t \t fired = true;
\t \t \t event.apply(this, args);
\t \t }.bind(this));
\t \t
\t \t return fired;
\t };
私は活字体で同じメソッドを作成できますか?ここで
は、サンプルの結果である:
{
"init": [callback, callback, callback],
"otherEvent": [callback, callback]
}
私は 'Map'としてエクスポートすると、これらのクラスは、/' ES5'を使用して(コンパイル後に発見されません。 「ES2015」)。私はすでにあなたのようなマップを使用しようとしていました。 –
古いバージョンのnodejsまたはWebブラウザでコードを実行しようとしている場合、Mapは利用できませんが、Shimを使用できます。 corejsのようにhttps://github.com/zloirock/core-js#map –
'Map'が定義されていないためにコンパイルエラーが発生した場合、' 'target": "es5" 'を使う必要があります。 '' lib ':["es6"] '' 'tsconfig.json' –