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.