Typescript: mismo tipo genérico que el tipo resuelto del parámetro anterior
Me gustaría saber cómo especificar ese tipo genérico si es el mismo que el tipo resuelto del argumento anterior, cuando el tipo puede ser de varios tipos.
function add<T extends (number | string)>(a: T, b: T): T {
if (typeof a === 'string') {
return a + b;
} else if (typeof a === 'number') {
return a + b;
}
}
add('hello', ' world');
add(1, 1);
Quiero poder decirle al compilador que todosT
son del mismo tipo, ya sea número o cadena. Podría perderme alguna sintaxis. Podría ser posible con tipos condicionales (hasta cierto punto) ...