Funciones
Clase 17 de 24 • Curso de TypeScript
Contenido del curso
Tipos de datos primitivos
Tipos de datos especiales
- 13

Any
10:17 min - 14

Union Types
08:10 min - 15

Alias y tipos literales
08:55 min - 16

Null y Undefined
11:59 min - 17

Funciones
Viendo ahora - 18

Retorno de funciones
08:34 min - 19

Objetos en funciones
09:24 min - 20

Objetos como tipos
05:20 min - 21

Módulos: import y export
12:11 min - 22

Usando librerías que soportan TypeScript
06:45 min - 23

Usando librerías que NO soportan TypeScript
08:28 min
Próximos pasos
Las funciones son nativas de JavaScript y esencialmente funcionan igual en TypeScript. Sin embargo, este último, con su sistema de tipado, nos ayudará a llevar a cabo una implementación más segura:
- Podemos definir que los argumentos de la función tengan un determinado tipo de dato (o más de uno si se usa Union Types):
type Sizes = 's' | 'M' | 'L' | 'XL'; //Alias y Tipos Literales
function createProductJson(
title: string,
createdAt: Date,
stock: number,
size: Sizes
){
return {
title,
createdAt,
stock,
size
}
}
En el argumento createdAt se indica que es de tipo Date en alusión al objeto Date propio de JavaScript y no a un tipo de dato como string o number. Son diferentes las definiciones.
- Cuando hagamos uso de nuestra función, TypeScript comprobará que le envíes todos los parámetros en orden y con el tipo de dato que se declaró en la función:
const producto1 = createProductJson(
"titulo",
new Date('10/10/3030'),
30,
'M'
)
En Visual Studio Code, si dejas el cursor sobre el nombre de la función que vas a invocar, te mostrará un mensaje con los detalles de la función, lo que espera como parámetros y lo que devolverá indicando además el orden y el tipo de dato de cada variable.
- Si queremos que un argumento sea opcional de enviar, podemos usar el modificador
?junto al nombre del argumento:
type Sizes = 's' | 'M' | 'L' | 'XL'; //Alias y Tipos Literales
function createProductJson(
title: string,
createdAt: Date,
stock?: number,
size?: Sizes
){
/*Código de la función*/
}
Nota: cuando definamos argumentos opcionales en una función, estas deben ubicarse al final, si no TypeScript nos indicará un **error, ya que podría haber confusiones al momento de invocar la función y enviar los respectivos parámetros:
function randomFunc(title: string, amount?: number){} //CORRECTO
function otherFunc(title?: string, amount: number){} // ERROR
Contribución creada por: Martín Álvarez.