開発覚書はてな版

個人的な開発関連の備忘録

【TypeScript】定数クラスっぽいものをつくる

概要

TypeScriptで定数クラスっぽいものをつくるのには namespace を利用すると便利です。
各const値をグループ化して、あたかも定数クラスのように利用できます。

動作環境

  • TypeScript 2.7.x

サンプルソース

const.ts
/** システム定数クラス */
export namespace SystemConst {

    /** アプリケーション名 */
    export const APPLICATION_NAME = 'ほげアプリ';

    /** サーバー */
    export namespace Server {
        /** IPアドレス */
        export const IP = '192.168.1.1';
    }
}
定数を参照するファイル
import { SystemConst } from './const';

function output(): void {
    // システム定数.アプリケーション名を出力
    console.log(SystemConst.APPLICATION_NAME);
    // システム定数.サーバー.IPアドレスを出力
    console.log(SystemConst.Server.IP);
}

その他

constを1個1個importするより簡単に記載できるようになります。
また、グループ毎の定数管理が可能になるため可読性があがります。