Дайте советы, как лучше привыкнуть в ТС, каким правилам я должен придерживаться(если есть такие) ? Например, я должен всегда типизировать все переменные, все функции. Может полезные ссылки от тех, кто недавно пересел на ТС и ссылка ему помогла освоить его
тут советов нет, настраиваете проект vs code или sublime
среда вам сама ругнется на косяки. Дальше смотрите на ошибку и оцениваете ее, можете исправить исправляете,
не можете //@ts-ignore
но будьте готовы что вас поправят.
TS в общем то и задуман, чтоб бы вы писали более обьемный код, но его качество смог проверить компилятор в большинстве случаев
Василий Банников, вообще хотелось бы научиться правильно пользоваться interface, enum, type, типизироватт переменные и функции не сложно. Вы пользуетесь ТС?
WbICHA, а вот и нет, я вот не могу понять, когда мне писать эти enum, type, interface. Может для вас это понятно, но мне пока нет и я вот хочу найти ключ для себя, чтобы я это понял и понимал прям как let, const, fun
Василий Банников, ну вот как вы понимаете, когда надо enum, type, interface делать, может простой пример приведете на какой-то песочнице с комментариями, возможно это очень бы помогло
Swaerok, interface - когда тебе нужно описать форму объекта.
enum - когда ты хочешь сделать тип "один из следующих вариантов".
type - когда ты хочешь сделать псевдоним типа.
Пример:
enum Color {
Red = "red",
Green = "green",
Blue = "blue"
}
interface IShape {
color: Color;
getSpace(): number;
}
type Point = [number, number];
interface IRectangle extends IShape {
a: Point;
b: Point;
c: Point;
d: Point;
}
interface Triangle extends IShape {
a: Point;
b: Point;
c: Point;
}
Swaerok, enum - перечисление возможных значений
type - это к генерикам https://www.typescriptlang.org/docs/handbook/2/gen... но требуется обьяснение что вы имеете в виду
interface - контракт где вы уверены что все есть что там обьявлено , либо у вас ошибка, кстати работает не всегда, но отсекает вас в большинстве случаев
я начинал со статически типизированных языков и тс мне кажется интуитивным
Вот как раз из этого и следует главный совет желающему освоить ТС.
Забыть JS и познакомиться хоть с одним "нормальным" языком.
После этого ТС будет простым и естественным ;)
А без этого, на базе одного жабоскрипта - трудно понять, к чему столько копания в подробностях.
Василий Банников, interface делается только в случае когда несколько объектов с похожими элементами или для каждого объекта надо делать, даже если он 1 будет? Type псевдоним для типизации? Типа num - number, str -string, просто не понимаю, почему просто не написать в этих примерах number. Часто enum используется? Вот что вижу какой он полезный в redux, там список один из, а вот больше не знаю где может применить, пока что
Swaerok, никто ж не заставляет. Дело в том, что ТS - не для JS, а для избавления от JS.
Он не отталкивается от JS, поэтому вам непонятны его заморочки. А они отталкиваются от строгости более серьезных языков и более чем естественны для программиста, который не боится влезть под капот и изучить, как оно крутится там, глубже.
Adamos, но он нужен для жс, я понимаю что он для опытных людей и на серьезных проектах, чтобы они допускали меньше ошибок и быстрее с ними. Сейчас и от джунов очень часто требуют тс, я могу проследить для чего он в чужом коде, могу сказать что там написано, но самому применять правильно, пока это слишком для меня, просто нужно нацти подход, чтобы я всё понял. Когда с нативного ЖС идешь в реакт, там ведь тоже было много чего нового и непонятного, вообще всё по другому, но теперь то на изи на нём пишу и понимаю, вот с ТС тоже так хочу, и побыстрее)
Swaerok, в реактах были новые приемы. Между неряшливостью и строгостью разница в парадигме.
Нужен принципиально другой подход к коду. Просто чего-то там "понять" недостаточно.
Swaerok, на самом деле попробовать изучить другой язык - всегда полезно.
Можно посмотреть, как пишут код в других парадигмах и перетянуть какие-нибудь хорошие практики.
Например из функциональных языков можно перетянуть практику явного разделения чистой логики и побочных эффектов.
А из низкоуровневых типа Rust и Си - понимание низкоуровневых структур данных и умение писать код с минимальной нагрузкой на память.
Опять же - из статически-типизированных языков можно перетянуть в динамически-типизированные языки дисциплину использования наиболее жёстких типов и привычки перекладывать часть работы по поиску ошибок на автоматизированные инструменты.
Василий Банников, для начала я думаю нужно уверенно себя чувствовать в стеке, который я выбрал, а когда уже стану более менее продвинутым, то можно и что-то не около жаваскрипорского изучить
Adamos, ну, выбора нет, надо понимать, он же вроде простой, типизирует чтобы я допускал меньше ошибок, изи же, а применить его не могу, пока тяжело это
Коллеги, а чем удобнее / лучше VSCode перед Jetbrains? Просто, любопытно.
Я например, время от времени фронт и бэк открываю в одном редакторе Intellij iDEA и он как-то приелся. Очень удобно. Хотелось бы узнать о преимуществах.