← Volver a la tabla de contenido |
---|
Permite definir firmas en multiples funciones para guardar en la misma función, en otras palabras se pueden tener multiples formas de llamar una función con diferentes parámetros
type StringNumber = string | number;
function add(a: StringNumber, b: StringNumber){
if(typeof a === 'string' || typeof b === 'string'){
return a.toString() + b.toString()
}
return a + b;
}
const result = add('cesar', ' gomez');
result.split(' ')
en este ejemplo no podríamos usar el método split()
porque es propio de los strings, y para TypeScript el return de la function es de tipo StringNumber
se podría solucionar con un casting para informar que el tipo de return es string y ya se podría usar el método split()
const result = add('cesar', ' gomez') as string;
result.split(' ')
sin embargo es mejor con Function Overloads consiste en anidar la function con el tipo de return
type StringNumber = string | number;
type NumberBoolean = number | boolean;
type Combinable = StringNumber & NumberBoolean;
function add(a: string, b: string): string;
function add(a: string, b: number): string;
function add(a: number, b: string): string;
function add(a: number, b: number): number;
function add(a: StringNumber, b: StringNumber){
if(typeof a === 'string' || typeof b === 'string'){
return a.toString() + b.toString()
}
return a + b;
}
const result = add('max', ' schwarz');
result.split(' ')
← Volver a la tabla de contenido |
---|