tomoyaonishiのブログ

iOSのことを中心に・・・その他もあるよ!

JavaScript, TypeScriptでシングルトン

iOSなどではよく(?最近はアンチパターンですかね)で使われるシングルトンをブラウザ環境上のJavaScriptでどう書くかわからなかったのでメモです。

コードはTypeScriptですが、こんな感じです。

定義側

interface StoreInterface {
    x: number;
    methodHoge: () => any;
}

class Store implements StoreInterface {
    x = 0;

    constructor() {
    }

    methodHoge() {
        this.x++;
    }
}

export default new Store();

利用側

import Store from "./Store";

render() {
      Store.methodHoge();

      // ...
}

export default のところで new をつけてインスタンス化しているところがポイントでしょうか。