Какие использовал технологии TS

Ответ

TypeScript (TS) — это типизированное надмножество JavaScript. Вот ключевые технологии и фичи, которые я использовал:

  1. Типы и интерфейсы
    interface User {
      id: number;
      name: string;
    }
    const user: User = { id: 1, name: 'John' };
  1. Generics для обобщённых функций/компонентов:
    function identity<T>(arg: T): T { return arg; }
  1. Utility Types (Partial, Pick, Omit):
    type PartialUser = Partial<User>;
  1. Декораторы (в Angular/NestJS):
    @Component({ selector: 'app-root' })
    class AppComponent {}
  1. Опциональные и union-типы:
    type Status = 'active' | 'inactive';
  1. Строгая типизация пропсов/стейта (React/Vue).

Также работал с type guards, enums, mapped types и интеграцией TS в сборку (Webpack/Vite).

Ответ 18+ 🔞

А, TypeScript, говоришь? Ну это ж, блядь, как JavaScript, только в очках и с галстучком! Серьёзный такой, правильный. Я эту хуйню постоянно юзаю, щас тебе на пальцах разжую, как бабушка котлету.

Смотри, главная его фишка — типы и интерфейсы. Это как паспорт для твоих данных. Без паспорта — ты бомж, и компилятор тебя в консоль вышвырнет.

// Вот смотри, объявляем, кто такой пользователь. Чётко, блядь!
interface User {
  id: number;   // ID — число, а не строка "один", ёпта!
  name: string; // Имя — строка, а не массив или хуй с горы
}
// А вот создаём этого пользователя. Попробуй name: 123 впихни — получишь пиздюлей от TS сразу!
const user: User = { id: 1, name: 'John' };

Дальше — Дженерики (Generics). Звучит сложно, а на деле — просто хуйня, которая подстраивается. Как универсальная отвёртка.

// Вот функция-зеркало. Что в неё сунешь — то и получишь назад. T — это тип, который подставится сам.
function identity<T>(arg: T): T { return arg; }
// Сказал ей, что T — string, она и вернёт строку. Не промахнётся.
const result = identity<string>("Привет, ёпта!");

А ещё там есть Utility Types — готовые шаблоны для лентяев. Зачем самому выёбываться, если можно взять Partial?

type PartialUser = Partial<User>; // Теперь все поля в User стали необязательными! Хочешь — name укажи, хочешь — хуй с ним.

Декораторы — это вообще магия, особенно в Angular или NestJS. Вешаешь волшебную @-штуку на класс или метод — и он обрастает новой функциональностью, как ёлка игрушками.

@Component({ selector: 'app-root' }) // Смотри, какая красота! Один декоратор — и класс уже компонент.
class AppComponent {}

Ну и куда же без опциональных и union-типов! Это когда переменная может быть или-или. Не "какой-то хернёй", а строго из списка.

type Status = 'active' | 'inactive' | 'pending'; // Всё, других статусов нет. 'banana' не прокатит, забудь.
let currentStatus: Status = 'active'; // Вот так можно.
// currentStatus = 'ёбнутый'; // А вот так — нет, получишь ошибку, хитрая жопа!

Работал я и со строгой типизацией пропсов в React. Это когда твой компонент не примет левые данные, даже если его очень попросить. И с type guards (это такие проверки, которые TypeScript понимает), и с enum, и со всей этой ебушкой-воробушкой.

И самое главное — вся эта строгость потом собирается в обычный JS через Webpack или Vite. TypeScript — это как чертёж, а на выходе получается готовая избушка, только без курьих ног. В общем, вещь!