[]
いくつかのWijmoコントロールには列挙値をとるプロパティがあります。
たとえば、FlexChartのchartTypeプロパティはwijmo.chart.ChartTypeの値をとります。
列挙プロパティの推奨される設定方法は以下のとおりです。
import { ChartType } from '@mescius/wijmo.chart';
// 列挙プロパティの値を設定します。
chart.chartType = ChartType.Line;
以下のような記述方法でも同じ結果になります。
// wijmo.chart.ChartType.Lineには値3が割り当てられています。
chart.chartType = 3;
// 列挙体が自動的に解析されます。
chart.chartType = 'Line';
上記のプロパティを取得すると、どの場合でも3が返されます。(たとえばUIに表示するために)値を文字列として取得する場合は、以下のように記述できます。
// 列挙値を数値として取得します。
console.log(chart.chartType); // "3" を出力します。
// 列挙値を文字列として取得します。
console.log(ChartType[chart.chartType]); // "Line" を出力します。
列挙体クラスとインデックスを使用して、文字列と対応する数値を相互に変換できます。例:
// 列挙値を文字列に変換します。
console.log(ChartType[3]); // "Line" を出力します。
console.log(ChartType[1000]); // "null" を出力します。
// 文字列を列挙値に変換します。
console.log(ChartType['Line']); // "3" を出力します。
console.log(ChartType['NoSuchValue']); // "null" を出力します。
.NETのEnumクラスには、列挙体によって定義された名前と値を返すGetNamesおよびGetValuesというメソッドがあります。
以下のコードは、(Wijmoで使用されている)TypeScript列挙体によって定義された名前と値を取得する同じようなメソッドを実装する方法を示します。
import { DataType } from '@mescius/wijmo';
// 列挙体によって定義された名前を取得します。
function getEnumNames(enumClass) {
var names = [];
for (var key in enumClass) {
var val = parseInt(key);
if (isNaN(val)) names.push(key);
}
return names;
}
// 列挙体によって定義された値を取得します。
function getEnumValues(enumClass) {
var values = [];
for (var key in enumClass) {
var val = parseInt(key);
if (!isNaN(val)) values.push(val);
}
return values;
}
// 使用例:
var nn = getEnumNames(DataType); // [ 'Object', 'String', 'Number', 'Boolean', 'Array' ]を返します。
var vv = getEnumValues(DataType); // [ 0, 1, 2, 3, 4 ]を返します。