私は長い間Javaプログラマーですが、今ではTypeScriptを研究するためにAngularを勉強しています。Javaのようなパラメータを受け取るTypeScriptでEnumを実装することは可能ですか?
私は練習が簡単なものを開発しています。私はJavaの世界で私が列挙型を作成する状況に出くわしました。
TypeScriptはこのEnumの概念をサポートしていますが、Javaに比べてかなり制限されています。
TypeScriptでEnumの制限を回避するには、enumのように動作するクラスを使用することを考えました。
TypeScript世界の優れた方法に従って、実装を「正常」以下にしていますか?
Javaのようなパラメータを受け取るTypeScriptでEnumを実装することは可能ですか?それとも、これは本当にクラスを通してのみ可能ですか?
export class MyEnum {
public static readonly ENUM_VALUE1 = new MyEnum('val1_prop1', 'val1_prop2');
public static readonly ENUM_VALUE2 = new MyEnum('val2_prop1', 'val2_prop2');
public static readonly ENUM_VALUE3 = new MyEnum('val3_prop1', 'val3_prop2');
private readonly _prop1: string;
private readonly _prop2: string;
private constructor(prop1: string, prop2: string){
this._prop1 = prop1;
this._prop2 = prop2;
}
get prop1(): string{
return this._prop1;
}
get prop2(): string{
return this._prop2;
}
}