DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

Paracetamol.ts💊| #10: Explica este código TypeScript

Explica este código TypeScript

Dificultad: Básico

const fn = (name?:string, edad:number) => {
  return `${name} - ${edad}`
}

console.log(fn("Carlos", 25))
console.log(fn(25))
Enter fullscreen mode Exit fullscreen mode

A. Carlos - 25, undefined - 25
B. Carlos - 25, 25 - undefined
C. Carlos - 25, TypeError
D. Carlos - 25, undefined - undefined

Respuesta en el primer comentario.


Top comments (3)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

✅ B. Carlos - 25, 25 - undefined

En TypeScript existen los parámetros opcionales (que no es lo mismo que los parámetros por defecto), consiste obviamente en dar la posibilidad al programa de funcionar normalmente omitiendo el parámetro opcional.

En TypeScript todos los parámetros de una función son obligatorios a no ser que se le indique lo contrario. La única condición para usarlos es que los parámetros opcionales deben ser escritos al final de la función siempre:

const fn = (edad: number, name?: string) => {
  return `${name} - ${edad}`
}

console.log(fn(25, "Carlos")) // Carlos - 25
console.log(fn(25)) // undefined - 25
Enter fullscreen mode Exit fullscreen mode

Pese a que la salida es similar al resultado de este reto, esta sería la forma correcta de escribir la función para que no salten advertencias en nuestro editor de código.

Uno de los problemas de usar parámetros opcionales es que estos puden venir como undefined entonces tenemos que validar estos casos, pero esto lo dejamos para otro reto...

Collapse
 
zodman profile image
Andres 🐍 in 🇨🇦

con ts-node no me compila.

Collapse
 
duxtech profile image
Cristian Fernando • Edited

los ejemplos lo hago con un playground llamado jsitor y todo me corre bien, con el platground oficial de ts también me corre todo bien...