Is this a bug or I don't understand something?
function getConfig(key as PropertyKeyType) as PropertyValueType or Null { return Properties.getValue(key); } function getConfigNumber(key as PropertyKeyType, defaultValue as Number) as Number { var value = getConfig(key); if (value instanceof Lang.Number) { // how can I get rid of this if? return value; } if (value instanceof Lang.Boolean) { return value ? 1 : 0; } if (value != null && value has :toNumber) { // this should cover Float, Double, Number, String, Long, Char, Symbol value = value.toNumber(); } return value != null ? value as Number : defaultValue; }
function getConfigNumber(key as PropertyKeyType, defaultValue as Number) as Number { var value = getConfig(key); if (value != null && value has :toNumber) { // ERROR in this line value = value.toNumber(); } if (value instanceof Lang.Boolean) { return value ? 1 : 0; } return value != null ? value as Number : defaultValue; }
*) SOMETHING has to be a possible type in PropertyValueType
function getConfigNumber(key as PropertyKeyType, defaultValue as Number) as Number { var value = getConfig(key); if (value instanceof Lang.Boolean) { return value ? 1 : 0; } if (value != null && value has :toNumber) { // this should cover Float, Double, Number, String, Long, Char, Symbol value = value.toNumber(); } return value != null ? value as Number : defaultValue; }