2021-08-27 16:50:12
Вышел Typescript 4.4, что нового?
Полный список изменений
1. Улучшили type assertions. Результат проверки типа можно присвоить в переменную, а потом использовать в условии, и TS применит сужение типа согласно проверке.
const isString = typeof x === «string»;
const isNumber = typeof x === «number»;
const isStringOrNumber = isString || isNumber;
if (isStringOrNumber) {
x; // Type of 'x' is 'string | number'.
} else {
x; // Type of 'x' is 'boolean'.
}
2. Расширили возможности индексов. Теперь можно использовать template string patterns (e.g. hello-${string}) и symbol.
type A {
[optName: `data-${string}`]: unknown;
}
let a: A = {
«data-blah»: true, // Works!
«unknown-property»: true, // Error!
};
3. Новый флаг exactOptionalPropertyTypes. Если поле объекта — опциональное, то ключа либо не должно быть вообще, либо с нужным значением.
type A = { key?: number }
let a: A = { key: undefined } // Так теперь нельзя
4. Добавили поддержку inlay-hints — подсказки типов/имен аргументов, которые давно есть в IDEA.
1.2K views13:50