TypeScript día 2
March 01, 2022
Hoy es m día dos realizando el tutorial de Netninja sobre TypeScript. El día de hoy aprendí sobre:
- tsconfig
- Lo básico de funciones
- Alias de tipos
- Forma de una función
tsconfing
La configuración de TS se utiliza para mejorar el proceso de trabajo.
Usualmente se trabaja en carpetas como public
para los archivos que se leerán al final de compilar los archivos que se encuentren en la carpeta src
.
Así se evita tener que correr el comando tsc ./src/[archivo1].ts ./public/
cada vez que se requiera.
Para crear el archivo de configuración por defecto se utiliza el comando tsc --init
que crea el archivo tsconfig.json
en la carpeta raíz del proyecto.
En ese archivo es necesario indicarle el directorio raíz (rootDir
). Donde el compilador tomará todos los archivos que estén allí para compilarlos.
Además también se puede indicar el directorio de salida (outDir
). El cual es la carpeta donde se introducirá los archivos compilados.
Sin embargo, a pesar de que se indica el rootDir
, typescript sigue tomando archivos fuera de esta carpeta. Para evitar eso, se le agrega "include": ["src"]
al archivo de configuración.
Básico de funciones
Al crear una variable con una función, typescript infiere que esa variable sólo aceptará funciones
Para especificar de forma explicita que la variable aceptará sólo funciones se hace de la siguiente manera:
let comer: Function // con F mayuscula
Si queremos agregar un argumento que sea opcional que utiliza el símbolo ?
antes de especificar los/el tipo de dato que recibe. Si no se le asigna un valor, toma undefined
por defecto.
const sumar = (a: number, b: number, c: number|string) => {
console.log(a + b)
console.log(c) // imprime undefined si c no se le da un valor
}
También se puede especificar de forma explicita el tipo de dato que retorna la función. Si no se hace, la TS infiere en ese tipo de dato.
const restar = (a: number, b: number): number => {
return a - b
}
Retornar void
significa que la función no retorna ningún valor.
Alias de tipos de datos
Los alias de tipos es una forma de abreviar el tipo de dato de una variable. Con ello sólo se escribe una sola variable en lugar de todo los tipos necesarios siempre.
Evitamos escribir:
const compra = (cantidad: string|number, fruta: string) => {
console.log(`Se compró ${cantidad} de ${fruta}`);
}
const quienCompra = (user: {nombre: string, cantidad: string|nunber}) => {
console.log(`${user.name} compro la fruta`);
}
Y pasamos a crear una variable que tome el valor de los tipos
type StringOrNum = string | number;
const compra = (cantidad: StringOrNum, fruta: string) => {
console.log(`Se compró ${cantidad} de ${fruta}`);
}
Lo que también sirve para objetos:
type StringOrNum = string | number;
// se puede usra con objetovs
type objWithName = { name: string, cantidad: StringOrNum}
const compra = (cantidad: StringOrNum, fruta: string) => {
console.log(`Se compró ${cantidad} de ${fruta}`);
}
const quienCompra = (user: objWithName) => {
console.log(`${user.name} compro la fruta`);
}
Forma de una función
En inglés es function signature, y es básicamente un alias para la función. O crear la estructura de función.
// example 1
let saludar: (a: string, b: string) => void;
saludar = (name: string, greeting: string) => {
console.log(`${name} says ${greeting}`);
}
Arriba se puede ve que saludar sólo aceptará 2 parámetros que serán string y no retornarán nada.
Si algo de eso se cambia. El compilador arrojará un error.
Hasta luego
Bueno, eso fue lo que aprendí en el día dos los tutoriales de typescript. No sé si es muy largo o no. Pero seguiré creando estos posts.
Nos vemos