Я написал небольшую функцию для лучшей обработки с помощью типов.Получить тип общего параметра
function evaluate(variable: any, type: string): any {
switch (type)
{
case 'string': return String(variable);
case 'number': return isNumber(variable) ? Number(variable) : -1;
case 'boolean': {
if (typeof variable === 'boolean')
return variable;
if (typeof variable === 'string')
return (<string>variable).toLowerCase() === 'true';
if (typeof variable === 'number')
return variable !== 0;
return false;
}
default: return null;
}
}
function isNumber(n: any): boolean {
return !isNaN(parseFloat(n)) && isFinite(n);
}
Я пробую то же самое с дженериками, но не знаю, как получить тип из общего параметра. Возможно?
Это не так. Напечатка TypeScript - это только функция времени компиляции. Выходной JavaScript не имеет информации о типе и не имеет возможностей для отражения. Вы должны полагаться на старый добрый '' typeof'' в своем коде, как в JavaScript. –
Для записи вы можете свернуть ваш обработчик для bools, чтобы 'return !! variable;' –