Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Что думаете на счёт TypeScript? (https://javascript.ru/forum/misc/85216-chto-dumaete-na-schjot-typescript.html)

Aetae 25.05.2023 20:26

voraa, это он для C# ругается, перетыкни на ts - норм сгенерит.)

Alexandroppolus 26.05.2023 14:04

Цитата:

Сообщение от voraa
В котором, меня интересует лишь пара полей.
Сколько времени уйдет на точное описание на ts такого объекта

если тебе нужна пара полей, то достаточно описать только их
type MyType = {
    a: string;
    b: number;
};

const jsonObj = {
    a: 'aaa',
    b: 123,
    c: 456,
    d: {...}
};

function f(p: MyType) {
    console.log(p.a.toUpperCase(), p.b.toFixed()); // проверка типов, автокомплит и т.д.
}

f(jsonObj); // в параметр типа MyType передали jsonObj, где дохрена всего "лишнего"

Aetae 26.05.2023 18:02

Alexandroppolus, по секрету скажу: если совсем лень - можно прям энтот json использовать как тип. Да, вместо абстрактных string там будут конкретные значения, но если ты только читаешь и не пишешь - то тебе пофигу.)

Alexandroppolus 26.05.2023 21:33

Aetae,
Ну это если мы заимпортили json или прямо вручную создали объект-литерал. Для загруженного объекта тип будет unknown или даже any..

Aetae 27.05.2023 07:22

Alexandroppolus, это очевидно(вроде). TS работает на этапе компиляции, откуда ему знать что ты там когда-нибудь в рантайме загрузишь...

Uzasny 29.05.2023 03:01

Цитата:

Сообщение от Aetae (Сообщение 551933)
Какие тебе аргументы? Такие которые скажут, что ты - молодец и можешь дальше ничего нового не изучать, и сидеть на жопе ровно? Хрен тебе.

Я в своё время тоже возмущался и "не понимал", пока не взялся за реальный проект, так что и тебе никакие разумные доводы не помогут кроме дела. Прирост в скорости в два раза, в полёте мысли без отвлечений и загрузки в память мусора не имеющего отношения к контексту проблемы - это всё для тебя пустой звук пока не познаешь на себе.

Я думал, что программист по складу ума должен уметь приводить аргументы в виде сухих фактов - бенчей, статы и прочих цифр.

А истеричное "Родишь — поймешь попробуешь — поймёшь" - говорит не в пользу специалиста...

Цитата:

Сообщение от Aetae (Сообщение 551944)
Мусора - знаний о всех структурах, схемах и потоках данных в не релевантных частях большого приложения. Тебе не надо разбирать что-то кроме куска кода с которым ты работаешь, когда TS следит за входящими и исходящими данными за тебя.

Вот это уже лучше, появилась конкретика.

Цитата:

Сообщение от Aetae (Сообщение 551944)
Если ты топишь за ванилу, потому что главное - это скорость работы программы, а всё остальное презренно и ничтожно - пиши на ассеблере и не приставай к адекватным людям. Может быть даже закончишь за свою жизнь один какой-нибудь суперскоростной микропроект.

Как же хочется взять и обидеть таким "скорость-не-главное" продвинутым погромистам. Но увы, это уже борьба с ветряными мельницами, копроэкономика сделала своё дело. Страница входа в ЛК застройщика - сначала сожри 10 метров скриптов. Явно "продвинутые погромисты" сэкономили своё время и мозговые клетки. За счёт времени и нервов пользователей. А как пытаешься что-то с этим сделать - сразу визг "преждевременная оптимизация".

Uzasny 29.05.2023 03:10

Цитата:

Сообщение от voraa (Сообщение 551878)
Не помню, что бы когда либо передавал объект вместо строки. Может я уникум, но ошибки типизации у меня крайне редки. Не припомню, когда делал.

У меня те же мысли. Смысл загромождать код ради "спасения" от ошибок, которых у меня даже не бывает? Дешёвым недокодерам, может, и помогает, а мне - мешает. И да, я сейчас работаю с "большой кодовой базой" без тупоскриптов, о ужос. Никто не умирает. Со временем узнал проект так, что подсказки практически не нужны. Но я на одном продукте работаю. Тем, кто часто скачет по проектам, видимо, заходит.

Aetae 29.05.2023 09:36

Цитата:

Тем, кто часто скачет по проектам, видимо, заходит.
Конечно. С TS тебе буквально ничего не надо знать о проекте. Если тебе нужно поправить один файл, то тебе нужно открыть и править только один этот файл. За всё что приходит и всё что уходит отвечает тайпскрипт, тебе вообще не интересен контекст всего остального говна. Это просто кайф.
Цитата:

Как же хочется взять и обидеть таким "скорость-не-главное" продвинутым погромистам.

Если пипл хайвает, если бизнес хавает, то зачем я должен "страдать за народ"? Я прекрасно умею писать оптимизированный код, только он никому не нужен.

voraa 29.05.2023 09:47

Получается замкнутый круг. Сначала быстро пишем неоптимальный код, получая запредельные всякие FCP, LCP. Потом хватаемся за голову и тратим время, больше чем сэкономили на коде, что бы оптимизировать их.

Aetae 29.05.2023 10:16

Цитата:

Сообщение от voraa (Сообщение 552131)
Получается замкнутый круг. Сначала быстро пишем неоптимальный код, получая запредельные всякие FCP, LCP. Потом хватаемся за голову и тратим время, больше чем сэкономили на коде, что бы оптимизировать их.

Так, да не так. Мы сначала быстро пишем 100500 неоптимальных проектов, один из них выстреливает, и вот тогда - тратим время, больше чем сэкономили на коде одного, но несоизмеримо меньше чем сэкономили на всех остальных.


Ну и вообще это отхождение от темы, т.к. TS ровно никак не влияет на производительность, ибо компилируется в JS практически 1 к 1.

Вот Ангуляр и Рекат - да, влияют, ибо требуют много ручного труда для производительности, а реакт аж в документации пишет "никогда не оптимизируйте, потом когда будет узкое место там и пофиксите", что делает реакт на деле самым тормозным из всех, при вполне нормальной возможности оптимизации.:)
В Vue с оптимизацией дело куда лучше, потому что она работает по умолчанию, но кривые руки всё равно никто не отменял.)


Часовой пояс GMT +3, время: 12:28.