Introdução aos Tipos de Função no TypeScript
O TypeScript exige tipos para tudo. Isso inclui suas funções. Você deve definir tipos para as entradas e saídas.
Sintaxe de Função
Você define os tipos de entrada e um tipo de saída desta forma:
function add(x: number, y: number): number {
return x + y;
}
O TypeScript também utiliza inferência de tipos. Você nem sempre precisa escrever o tipo de saída. O compilador o encontra para você.
Se sua função retornar tipos diferentes, o TypeScript lida com isso. Por exemplo, se uma função retornar um número ou uma string, o compilador detectará ambos.
Tipos de Retorno Especiais
- void: Use isto quando uma função não retorna nada.
- never: Use isto quando uma função lança um erro ou interrompe o programa.
Parâmetros
Você pode tornar os parâmetros opcionais usando um ponto de interrogação.
function makeProfile(name: string, age: number, url?: string) {
// código
}
Você também pode usar valores padrão. Isso torna um parâmetro opcional sem a necessidade de símbolos especiais.
function makeProfile(name: string, age: number, url: string = "www.example.com") {
return name + " visita " + url;
}
Funções de Callback
Funções são valores. Você pode passá-las como argumentos. Para definir um tipo de callback, use esta sintaxe:
function makePage(func: (n: string, a: number, u?: string) => string, param1: string, param2: number) {
func(param1, param2);
}
Os nomes dos parâmetros no callback não importam. Apenas os tipos importam.
Arrays de Funções
Se você precisar de uma lista de funções, defina-as como um array daquele tipo de função.
function applyMath(funcs: ((a: number, b: number) => number)[], x: number, y: number) {
// código
}
Parâmetros Rest
Use o operador spread para aceitar qualquer número de argumentos. Isso armazena todas as entradas em um array.
function sum(...numbers: number[]) {
// código
}
sum(1, 2, 3);
Fonte: https://dev.to/jsha/introduction-to-typescript-function-types-hin