Typescript 4.0
- tags:: Typescript
- source:: https://www.youtube.com/watch?v=bAB%5FnNf8-a0
No breaking changes
No hay cambios que rompan algo
Typescript no usa semver
Variadic Typle Types
Esto es lo nuevo La idea es que Typescript pueda inferir Nueva sintaxis
function oldConcat<T,U>(arr1: T[], arr2: U[]): Array<T | U> {
return [...arr1, ...ar2]
}
function concat<T extends Arr, U extends Arr>(arr1 T, arr2: U) : [...T, ...U] {
return [...arr1, ...arrr2]
}
new concat return a tutple con todos los tipos de los elementos
Tuples ahora proveed labels
Util para agregar labels en los tipos de retornos
Class Property Inference from Constructor
Ahora se puede usar analisis de control de flujo para determinar el tipo de propiedades en clases when `noImplicitAny` esta activado
class Square {
// Previously: implicit any!
// Now: inferred to number
area;
sideLength;
constructor(sideLength: number) {
this.sideLength = sideLength;
this.area = sideLength ** 2;
}
}
No hay que agregar los tipos explicitos en las propieades
Nuevos operadores
&&=
||=
??=
//sustitutos
a = a && b;
a = a || b;
a = a ?? b;
// Algunos patrones
let values: string[];
// Before
(values ?? (values = [])).push('Hello')
// Now
(values ??= []).push('Hello')
Unknown on catch Clause bindings
Dentro del catch del bloque try catch(x) tiene tipo any Ahora `catch(x: unknown)` forzando a hacer `typeof` o hacer un `cast` en el tipo