Профессиональный TypeScript. Разработка масштабируемых JavaScript-приложений
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Профессиональный TypeScript. Разработка масштабируемых JavaScript-приложений

Матвей Г.
Матвей Г.дәйексөз келтірді6 ай бұрын
абстрактное синтаксическое дерево (АСД). Оно представляет собой структуру данных, игнорирующую пустые области, комментарии и ваше ценное мнение о пробелах или табуляции.
1 Ұнайды
Комментарий жазу
Wade
Wadeдәйексөз келтірді11 ай бұрын
Синтаксис [key: T}: U называется сигнатурой индекса. С ее помощью вы сообщаете компилятору, что данный объект может содержать больше ключей. Читать его следует так: «Для этого объекта все ключи типа T должны иметь значения типа U». Сигнатуры индекса позволяют безопасно добавлять дополнительные ключи объекту, помимо объявленных ранее. Но тип (T) ключа сигнатуры индекса должен быть совместим либо со string, либо с number11
1 Ұнайды
Комментарий жазу
kisovetar
kisovetarдәйексөз келтірді1 күн бұрын
К слову, есть множество возможных ошибок, которые TypeScript не может обнаружить при компиляции. К ним относятся переполнения стека, разрывы сетевых соединений и некорректный ввод данных пользователем. Все они по-прежнему будут производить исключения при выполнении.
Комментарий жазу
Ольга
Ольгадәйексөз келтірді1 апта бұрын
Встроенные отображенные типы Встроенные типы, с которыми мы познакомились в последнем разделе, настолько полезны, что TypeScript содержит множество их вариантов: Record<Keys, Values> Объект с ключами типа Keys и значениями типа Values. Partial<Object> Помечает каждое поле в Object как опциональное. Required<Object> Помечает каждое поле в Object как обязательное. Readonly<Object> Помечает каждое поле в Object только для чтения. Pick<Object, Keys> Возвращает подтип Object только с заданными Keys.
Комментарий жазу
Ольга
Ольгадәйексөз келтірді1 апта бұрын
Как вы увидели, отображенные типы имеют особый синтаксис. И в объекте должно быть не более одного отображенного типа (как и сигнатур индекса): type MyMappedType = { [Key in UnionType]: ValueType }
Комментарий жазу
Ольга
Ольгадәйексөз келтірді1 апта бұрын
Объединяя операторы подключения и keyof, вы можете реализовать типобезопасную функцию получения, которая ищет значение в заданном ключе объекта: function get< ❶ O extends object, K extends keyof O ❷ >( o: O, k: K ): O[K] { ❸
Комментарий жазу
Ольга
Ольгадәйексөз келтірді1 апта бұрын
Когда мы явно типизируем options как Options, объект, присваиваемый нами options, является новым, поэтому TypeScript выполняет проверку лишних свойств и находит баг. Заметьте, что в этом случае проверка лишних свойств не производится, когда мы передаем options в new API, но она происходит, когда мы пытаемся присвоить объект опций к переменной options.
Комментарий жазу
Ольга
Ольгадәйексөз келтірді1 апта бұрын
let d = [1, {x: 2}] //(number | {x: number})[] let e = [1, {x: 2}] as const // readonly [1, {readonly x: 2}] Используйте as const, когда хотите, чтобы TypeScript вывел максимально узкий тип.
Комментарий жазу
Подобные издержки незаметны в случаях с небольшими массивами, но становятся весьма ощутимы при работе с крупными.
Комментарий жазу
Читать его следует так: «Для этого объекта все ключи типа T должны иметь значения типа U».
Комментарий жазу