Tipos y anotaciones
23 pasos en 7 series de TypeScript.
El sistema de tipos tal como te lo encuentras. Primitivos y tipos literales, y después los incómodos, any, unknown y never, que vale la pena entender temprano porque la diferencia entre ellos es la diferencia entre tipos que ayudan y tipos que mienten.
Luego el estrechamiento, objetos e interfaces, funciones y tuplas, y al final satisfies y los flags de strict. Veintitrés pasos, cada uno verificado por el compilador en modo strict.
Primitivos y literales
- Tipos primitivosAnotar los tipos básicos, los arreglos y las tuplas.
- Tipos literales y de uniónUn tipo literal es un valor exacto; una unión es un conjunto cerrado de ellos.
- Enums y aserciones constConjuntos fijos de valores, como enums o uniones de literales.
- Enums y la alternativaQué te da un enum, y por qué un objeto const suele ganarle.
Los tipos incómodos
- unknown, any y neverunknown exige un chequeo, any los suprime todos, never significa que no puede ocurrir.
- Aserciones y su costoas, non-null y las dos salidas de emergencia de las que debes desconfiar.
Estrechamiento
- Estrechamiento y guardas de tipoEnseñarle al compilador qué es un valor en realidad.
- EstrechamientoEl compilador sigue tus chequeos: typeof, in, instanceof y valores truthy.
- Predicados de tipoUna función que devuelve
x is Tle enseña al compilador qué verificaste. - switch exhaustivoEl truco de never que hace que el compilador rechace un caso sin manejar.
Objetos e interfaces
- Interfaces y alias de tipoDescribir formas de objetos, y combinarlas.
- Tipos de objetoOpcionales, readonly, firmas de índice y chequeo de propiedades sobrantes.
- type contra interfaceLas interfaces se fusionan y se implementan; los alias de tipo se componen.
- Tipado estructuralLa compatibilidad es cuestión de forma, no de nombres ni de ascendencia.
- readonly e inmutabilidadArreglos y objetos readonly, y hasta dónde llega la garantía.
Funciones y tuplas
- Funciones tipadasAnotaciones de parámetros, de retorno y de tipos función.
- Tipos función y sobrecargasUna firma de llamada como tipo, parámetros opcionales y por defecto, sobrecargas.
- TuplasArreglos de longitud fija con un tipo por posición, y elementos etiquetados.
- Clamp y lerpClamp e interpolación lineal, las dos funciones que toda animación necesita.
- Arreglo de rangoConstruye un arreglo de números, la contraparte inmediata de un generador.
satisfies y strict
- satisfiesVerificar un valor contra un tipo sin ensancharlo a ese tipo.
- Qué enciende strictLos flags individuales detrás de strict, mostrados por lo que atrapa cada uno.
Bis
- validate-config.tsParsear entrada unknown a una config totalmente tipada o a una lista de problemas.