バイクとプログラミング

Month: February 2019

TypeScript Enumの値をオブジェクトのキーとして使う。

TLDR ブランケットを忘れるな

TypeScriptを使っているとオブジェクトのキーにEnumの値を使いたい時があります。まぁ当たり前なんですが、下のコードはコンパイルできません。

enum myStatus { int, act, typing }
const yourObject = {
myStatus.int : 5
}

TypeScript上でのEnumは要はオブジェクトなので、ちゃんとキーをブランケットで指定しないと怒られます。

enum myStatus { int, act, typing }
const yourObject = {
[myStatus.int] : 5
}


TypeScriptで動的インポート import() を使う。

自作ゲームのスキル計算の自由度を上げようと、JSONから単一クラスによるスキル情報定義に変更しました。JSONの場合、それ自体はただの文字列なので読み込むのは簡単だったのですが、TypeScriptの場合は動的インポートを使用する必要が出てきます。

動的インポートというのは、プログラムの実行時に関数やクラスをインポートすることを言います。TypeScriptやJavaScriptでは動的インポートを行なうためにimport()関数を利用します。

使い方は非常にシンプルです。import()関数は利用時にPromiseを返却します。

// ./modules/module1
export class Module1 {
constuctor() {
console.log('Hello');
}
}
// 読み込む側
import('./modules/module1')
.then((modData) => {
new modaData.Module1(); // => 'Hello'
})
.catch((error) => {
console.error(error);
});

Promiseなので、Async / Await関数でも利用することができます。

とりあえず以上です。

Powered by WordPress & Theme by Anders Norén