Re[58]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 28.09.21 08:34
Оценка: +2 -1 :)
Здравствуйте, vdimas, Вы писали:

V>>>Статья от 2018-го.

I>>С разморозкой — нынче сентябрь 2021.
I>>Ты бы роадмап глянул? 2018й это выход 3.0. На сегодня актуальна 4.4

V>Это всё копейки и на суть обсуждаемого в той статье не влияет.


Это влияет на твоё утверждение "TypeScript с тех пор практически не изменился"
Изменился и очень сильно, благодаря чему переход на TypeScript теперь норма.

Основные претензии JS разработчиков были в том, что:
1 типы добавляют много дополнительного кода. Собственно, именно это препятствие теперь устранено благодаря улучшеному выводу типа и всяким плюшкам вокруг него построеным, type narrowing, control flow analysis и тд.
2 перформанс компилятора — улучшился в разы
3 слабоватая поддержка редакторами — compiles services теперь адекватные, навигация, рефакторинг, интеллисенс теперь заруливают любой жээс редактор.

Вот история версий, кликаешь в каждую с сегодняшнего дня и до 18го года, т.е. до 3.3
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-4.html

V>Особенно "более лучший вывод типов" и "туплы-генерики".


Туплы-генерики это крайне полезная фича:
type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;

function x(a: string, b: number) {
...
}

type Params = Parameters<x>; // [string, number]


Здесь кроме infer есть conditional type. С помощью этой вещи можно объявить, например, какой нибудь хитрый рекурсивный тип, где у чилдренов правила могут меняться в зависимости от контекста. А можно сделать парсинг типа, примерно так http://rsdn.org/forum/philosophy/7967480.1
Автор: Ikemefula
Дата: 09.03.21


Вот еще:
type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};

// теперь просто так не получится изменить x.

Таких комбинаторы крайне полезные!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.