En mi opinión, una de las principales preocupaciones del lenguaje TypeScript es admitir el código JavaScript vainilla existente. Esta es la impresión que tuve a primera vista. Eche un vistazo a la siguiente función de JavaScript que es perfectamente válida:
Nota: No estoy diciendo que me guste este enfoque. Solo digo que este es un código JavaScript válido.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
Entonces, consumimos esta función con cualquier número de argumentos:
console.log(sum(1, 5, 10, 15, 20));
Sin embargo, cuando pruebo esto con TypeScript Playground , da errores de tiempo de compilación.
Estoy asumiendo que esto es un error. Supongamos que no tenemos los problemas de compatibilidad. Entonces, ¿hay alguna forma de escribir este tipo de funciones con argumentos abiertos? Como la params
función en C #?
javascript
typescript
tugberk
fuente
fuente
numbers
parámetro con nombre ? No estás haciendo nada con eso.Respuestas:
La forma de hacer esto de TypeScript es colocar el operador de puntos suspensivos (
...
) antes del nombre del argumento. Lo anterior se escribiría como,Esto tecleará check correctamente con
fuente
Además de la respuesta @chuckj: También puede usar un
arrow function expression
en TypeScript (es una especie delambda
en Java / .NET)fuente
En Typecript es el concepto de parámetro de reposo , es el parámetro que recibe múltiples valores de tipo similar. Si apuntamos al typecript, entonces tenemos que escribir el código ECMAScript 6 estándar, luego el transpiler typecript lo convierte a su código de script java equivalente ( que es el estándar ECMAScript 5 ). Si usamos typecript, entonces tenemos que usar tres puntos (...) preferx con el nombre de la variable del parámetro rest, como la función sum (... números: número []), entonces funcionaría.
Nota: El parámetro de reposo debe ser el último parámetro en la lista de parámetros. Asimismo, la función sum (nombre: cadena, edad: número, ... números: número []).
fuente