Obtener el tipo de parámetro genérico

Escribí una pequeña función para un mejor manejo con los tipos.

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);
}

Intento lo mismo con los genéricos, pero no sé cómo obtener el tipo de parámetro genérico. ¿Es posible?

Respuestas a la pregunta(1)

Su respuesta a la pregunta