TGViewer
kirjs_ru kirjs_ru @kirjs_ru · 1.59K subscribers
Post #305 1.55K
TypeScript 4.5 beta - анонсирован В свой 9й день рожденья!

✨ Поддержка ECMAScript модулей в Node.js
Была проделана оргомная работа. Теперь наконец-то можно юзать es импорты в ноде:

import { helper } from "./foo.js"; // works in ESM & CJS

Там очень много нюансов и деталей


✨ Добавлен новый тип Awaited, который умеет разворачивать промисы (pr)


// B = number
type B = Awaited<Promise<Promise<number>>>;


✨ Template String Types теперь можно использовать в качестве Дискриминанта (PR)


export interface Success {
type: ${string}Success;
body: string;
}

export interface Error {
type: ${string}Error;
message: string;
}

export function handler(r: Success | Error) {
if (r.type === "HttpSuccess") {
// 'r' has type 'Success'
let token = r.body;
}
}

✨поддержка --module es2022 (pr)
Пока там только top level await, который раньше был в esnext

✨Conditional Types теперь оптимизируется хвостовая рекурсия (pr)
Это значит, что если рекурсия не создает стек вызовов, ограничение глубины в 50 вызовов больше не действует!


type TrimLeft<T extends string> =
T extends ${infer Rest} ? TrimLeft<Rest> : T;

// Test = "hello" | "world"
type Test = TrimLeft<" hello" | " world">;


✨ Можно попросить TS выкидывать импорты которые он считает неиспользуемыми (pr)
с флагом —preserveValueImports

✨ Типы для пропоузала Ergonomic brand checks for Private Fields (pr)
Теперь можно писать #brand in obj чтобы убедиться что у объекта есть соответсвующее приватное поле (конечно это можно делать только в объекте того же типа

✨Типы для пропоузала Import Assertions (pr)
Можно писать import obj from "./something.json" assert { type: "json" };

🛠 В JSX появятся умные значения аттрибутов (pr)
TypeScript будет выбирать width={} или width=“” с помощью `big data deep network machine learning. Ха-ха, шучу, будет посто смотреть на тип атрибута.

🛠 Названия непонятных типов будут сохранены
Раньше, если вы написали let a: Pelmen и не импортировали тип, a превращалась в unknown.

Теперь тип будет Pelmen (unresolved)
Microsoft News Announcing TypeScript 4.5 Beta Today we are excited to announce the beta release of TypeScript 4.5! To get started using the beta, you can get it through NuGet, or use npm with the following command: npm install typescript@beta You can also get editor support by Downloading for Visual…
More from @kirjs_ru
  1. Nov 24, 2025Я последние несколько дней тестирую групповые чаты из ChatGPT. Идея оч клевая, и есть мног…
  2. Nov 20, 2025https://www.youtube.com/watch?v=DDAHORVzQ5g Погнали
  3. Jun 13, 2025Screenshot (Jun 12, 2025 10:01:45 PM)
  4. May 21, 2025Через 20 минут, должна быть сессия "What's new in Angular" на Google I/O. Я буду там отвеч…
  5. Feb 27, 2025Посмотрел на стриме ресурсы, в частности httpResource Создал StackBlitz в котором можно с…
  6. Feb 27, 2025На внезапном раннем стриме в 18:30 по мск Посмотрим Resource/HttpResource, и планы у Angul…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →