No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Parámetros por defecto

8/22
Recursos

Aportes 10

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Parametros por defecto en TS

Ya sabemos que los parametros por defecto pueden ser por defecto agregando un ?: justo como se hace abajo con age

function createUser(
  id: number,
  name: string,
  age?: number
) {
  return {
    id,
    name,
    age: age ?? 0,
  };
}

Sin embargo, tenemos la opcion de hacerlo de la siguiente manera

function createUser(
  id: number,
  name: string,
  age: number = 0
) {
  return {
    id,
    name,
    age
  };
}

En donde ya no usamos ?:, si no que ahora le asignamos un valor en caso de que ninguno sea asignado.
.
Las dos formas son validas y soportadas por TS

Aunque en la clase se habla de los parámetros por defecto son de TS, de igual manera estan desde ES6 de JavaScript

Para enviar un parámetro opcional usamos el nullish coalescing, sin embargo para enviar parámetros por defectos solo basta con igualarlo a la variable que queremos que tenga, si el usuario no nos indica el parámetro.

const createUser = (
	id: number,
	name: string,
	lastName: string,
	gender:string = 'Unspecified'
	) => {
	return {
		id,
		name,
		lastName,
		gender
	}
}

Podemos ver que al especificar el genero, le estamos indicando que el tipo de dato es un string, pero también le estamos diciendo "Hey ese gender es un string pero es igual a ‘Unspecified’ si el usuario no lo especifica ok?

esto igual funciona en js

Mencionas al modo typescript pero en JS normal también se puede hacer esto de asignar un valor por default al parámetro de una función

📝 Pro-tip: En este caso podemos abreviar la manera de retornar el objeto usando una sintaxis especial cuando vamos a retornar ese tipo en una sola línea:

export const createProduct = (
  id: string | number,
  isNew: boolean = true,
  stock: number = 10,
) => (
  {
    id,
    stock,
    isNew,
  }
)

Solamente devolviendo dentro de la función el objeto envuelto en paréntesis

Objeto como parametro
Si queremos tener un objeto como parametro y este necesita parametros por defecto es diferente a como se puede intuir:

export const createProductV2 = (data: {
  id: string | number;
  stock?: number; // Aqui no se puede definir un valor por defecto
  isNew?: boolean;
}) => {
  const { id, stock = 0, isNew = true } = data;
  // Desestrcturamos data y aqui mismo asignamos los valores por defecto.
  // Existen muchas formas de asignar parametros por defecto en un parametro de tipo objeto.
  return {
    id,
    stock,
    isNew,
  };
};

console.log(createProductV2({ id: 1, isNew: false }));
// De esta forma podemos asignar los parametros a gusto, sin ir en un orden.

Más formas de hacerlo: https://bobbyhadz.com/blog/typescript-object-parameter-default-value

Excelente clase

En resumen, default params en ts funciona de igual manera que default params en js

Les comparto mi apunte. 😄

Sintaxis Parámetros por defecto

function functionName (
	parameter: dataType = value
) {
	statements
}