Na IMO, uma das principais preocupações da linguagem TypeScript é oferecer suporte ao código JavaScript baunilha existente. Essa é a impressão que tive à primeira vista. Dê uma olhada na seguinte função JavaScript, que é perfeitamente válida:
Nota: não estou dizendo que gosto dessa abordagem. Estou apenas dizendo que este é um código JavaScript válido.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
Portanto, consumimos essa função com qualquer número de argumentos:
console.log(sum(1, 5, 10, 15, 20));
No entanto, quando tento fazer isso com o TypeScript Playground , ele gera erros em tempo de compilação.
Estou assumindo que isso é um bug. Vamos supor que não temos os problemas de compatibilidade. Então, existe alguma maneira de escrever esse tipo de função com argumentos abertos? Como params
recurso em c #?
javascript
typescript
tugberk
fonte
fonte
numbers
parâmetro nomeado ? Você não está fazendo nada com isso.Respostas:
A maneira TypeScript de fazer isso é colocar o operador de reticências (
...
) antes do nome do argumento. O texto acima seria escrito como,Isso digitará verificação corretamente com
fonte
Além da resposta @chuckj: Você também pode usar um
arrow function expression
em TypeScript (é tipo umlambda
em Java / .NET)fonte
No Typescript, é o conceito de Rest Parameter , é o parâmetro que recebe vários valores do tipo semelhante. Se segmentarmos o datilografado, precisaremos escrever o código ECMAScript 6 standard, o transpiler de datilografia o converterá em seu código de script java equivalente ( que é o ECMAScript 5 padrão ). Se usarmos texto datilografado, teremos que usar três pontos (...) preferx com o nome da variável restparameter, como a função sum (... numbers: number []), funcionaria.
Nota: Rest Parameter deve ser o último parâmetro na lista de parâmetros. Função da mesma forma soma (nome: string, idade: número, ... number: number []).
fonte