TypeScript. Подробное Руководство. Книга и документация в одном
Book information
Description
Содержание Глава 00. Что такое TypeScript и для чего он нужен 00.0. Определение 00.1. История TypeScript 00.2. Для чего нужен TypeScript 00.3. Зачем разработчику TypeScript Глава 01. Вступление Глава 02. Система типов, тип данных, значимые и ссылочные типы 02.0. Система Типов 02.1. Тип данных (тип) 02.2. Тип данных, передающийся по значению (примитивный тип) 02.3. Тип данных, передающийся по ссылке Глава 03. Связывание, типизация, вывод типов 03.0. Обработка кода компилятором 03.1. Лексический анализ (токенизация - tokenizing) 03.2. Синтаксический анализ (разбор - parsing) 03.3. Семантический анализ 03.4. Связывание (Binding) 03.5. Типизация 03.6. Вывод Типов (type inference) Глава 04. Преобразование типов 04.0. Неявные Преобразования 04.1. Явные Преобразования Глава 05. Типизированные и нетипизированные языки программирования 05.0. Нетипизированные языки 05.1. Типизированные языки Глава 06. Статическая и динамическая типизация 06.0. Статическая типизация (Static Typing) 06.1. Динамическая Типизация (Dynamic Typing) Глава 07. Сильная и слабая типизация 07.0. Сильная типизация (strongly typed) 07.1. Слабая типизация (weakly typed) Глава 08. Явная и неявная типизация 08.0. Явная типизация (explicit typing) 08.1. Неявная типизация (implicit typing) Глава 09. Совместимость типов на основе вида типизации 09.0. Совместимость типов (Types Compatibility) 09.1. Номинативная Типизация (nominative typing) 09.2. Структурная Типизация (structural typing) 09.3. Утиная Типизация (Duck typing) Глава 10. Совместимость типов на основе вариантности 10.0. Вариантность 10.1. Иерархия наследования 10.2. Ковариантность 10.3. Контравариантность 10.4. Инвариантность 10.5. Бивариантность Глава 11. Аннотация Типов 11.0. Аннотация Типов - общее 11.1. Аннотация типа 11.2. Синтаксические конструкции var, let, const 11.3. Функции (function) 11.4. Стрелочные Функции (arrow function) 11.5. Классы (class) 11.6. Сравнение Синтаксиса TypeScript и JavaScript 11.7. Итог Глава 12. Базовый Тип Any 12.0. Any (any) произвольный тип Глава 13. Примитивные типы Number, String, Boolean, Symbol, BigInt 13.0. Важно 13.1. Number (number) примитивный числовой тип 13.2. String (string) примитивный строковый тип 13.3. Boolean (boolean) примитивный логический тип 13.4. Symbol (symbol) примитивный символьный тип 13.5. BigInt (bigint) примитивный числовой тип Глава 14. Примитивные типы Null, Undefined, Void, Never, Unknown 14.0. Важно 14.1. Null (null) примитивный null тип 14.2. Undefined (undefined) примитивный неопределенный тип 14.3. Void (void) отсутствие конкретного типа 14.4. Never (never) примитивный тип 14.5. Unknown (unknown) Глава 15. Примитивный Тип Enum 15.0. Enum (enum) примитивный перечисляемый тип 15.1. Перечисления с числовым значением 15.2. Перечисления со строковым значением 15.3. Смешанное перечисление (mixed enum) 15.4. Перечисление в качестве типа данных 15.5. Перечисление const с числовым и строковым значением 15.6. Когда стоит применять enum? Глава 16. Типы - Union, Intersection 16.0. Тип Объединение (Union Types) 16.1. Тип Пересечение (Intersection Type) Глава 17. Type Queries (запросы типа), Alias (псевдонимы типа) 17.0. Запросы Типа (Type Queries) 17.1. Псевдонимы Типов (Type Aliases) Глава 18. Примитивные литеральные типы Number, String, Template String, Boolean, Unique Symbol, Enum 18.0. Литеральный тип Number (Numeric Literal Types) 18.1. Литеральный тип String (String Literal Types) 18.2. Шаблонный литеральный тип String (Template String Literal Types) 18.3. Литеральный Тип Boolean (Boolean Literal Types) 18.4. Литеральный Тип Unique Symbol (unique symbol) уникальный символьный тип 18.5. Литеральный тип Enum (Enum Literal Types) Глава 19. Object, Array, Tuple 19.0. Object (object) — ссылочный объектный тип 19.1. Array (type[]) ссылочный массивоподобный тип 19.2. Tuple ([T0, T1, …, Tn]) тип кортеж Глава 20. Function, Functional Types 20.0. Function Types - тип функция 20.1. Functional Types - функциональный тип 20.2. this в сигнатуре функции Глава 21. Interfaces 21.00. Общая теория 21.01. Интерфейс в TypeScript 21.02. Объявление (declaration) 21.03. Конвенции именования интерфейсов 21.04. Реализация интерфейса (implements) 21.05. Декларация свойств get и set (accessors) 21.06. Указание интерфейса в качестве типа (interface types) 21.07. Расширение интерфейсов (extends interface) 21.08. Расширение интерфейсом класса (extends class) 21.09. Описание класса (функции-конструктора) 21.10. Описание функционального выражения 21.11. Описание индексных членов в объектных типов 21.12. Инлайн интерфейсы (Inline Interface) 21.13. Слияние интерфейсов Глава 22. Объектные типы с индексными членами (объектный тип с динамическими ключами) 22.0. Индексные члены (определение динамических ключей) 22.1. Строгая проверка при обращении к динамическим ключам 22.2. Запрет обращения к динамическим ключам через точечную нотацию 22.3. Тонкости совместимости индексной сигнатурой с необязательными полями Глава 23. Модификаторы доступа (Access Modifiers) 23.0. Модификатор доступа public (публичный) 23.1. Модификатор доступа private (закрытый или скрытый) 23.2. Модификатор доступа protected (защищенный) 23.3. Модификаторы доступа и конструкторы класса 23.4. Быстрое объявление полей Глава 24. Закрытые поля определенные спецификацией ECMAScript 24.0. Нативный закрытый (private) модификатор доступа Глава 25. Абстрактные классы (abstract classes) 25.0. Общие характеристики 25.1. Теория Глава 26. Полиморфный тип this 26.0. this - как тип Глава 27. Модификатор readonly (только для чтения) 27.0. Модификатор readonly Глава 28. Definite Assignment Assertion Modifier 28.0. Модификатор утверждения не принадлежности значения к типу undefined Глава 29. Модификатор override 29.0. Модификатор override и флаг --noImplicitOverride Глава 30. Классы — Тонкости 30.0. Классы - Тонкости implements 30.1. Частичное слияние интерфейса с классом 30.2. Переопределение свойств полями и наоборот при наследовании Глава 31. Различия var, let, const и модификатора readonly при неявном указании примитивных типов 31.0. Нюансы на практике Глава 32. Аксессоры 32.0. Отдельные типы аксеcсоров Глава 33. Операторы - Optional, Not-Null Not-Undefined, Definite Assignment Assertion 33.0. Необязательные поля, параметры и методы (Optional Fields, Parameters and Methods) 33.1. Оператор ! (Non-Null and Non-Undefined Operator) 33.2. Оператор ! (Definite Assignment Assertion) Глава 34. Обобщения (Generics) 34.0. Обобщения - общие понятия 34.1. Обобщения в TypeScript 34.2. Параметры типа - extends (generic constraints) 34.3. Параметра типа - значение по умолчанию = (generic parameter defaults) 34.4. Параметры типа - как тип данных 34.5. Модификаторы вариантности параметров типа in и out Глава 35. Дискриминантное объединение (Discriminated Union) 35.0. Дискриминантное объединение Глава 36. Импорт и экспорт только типа 36.0. Предыстория возникновения import type и export type 36.1. import type и export type - форма объявления 36.2. Импорт и экспорт только типа на практике 36.3. Вспомогательный флаг --importsNotUsedAsValues 36.4. Разрешение импорта и экспорта только типа с помощью resolution-mode Глава 37. Утверждение типов (Type Assertion) 37.0. Утверждение типов - общее 37.1. Утверждение типа с помощью синтаксиса 37.2. Утверждение типа с помощью оператора as 37.3. Приведение (утверждение) к константе (const assertion) 37.4. Утверждение в сигнатуре (Signature Assertion) 37.5. Оператор satisfies Глава 38. Защитники типа 38.0. Защитники Типа - общее 38.1. Сужение диапазона множества типов на основе типа данных 38.2. Сужение диапазона множества типов на основе признаков присущих типу Tagged Union 38.3. Сужение диапазона множества типов на основе доступных членов объекта 38.4. Сужение диапазона множества типов на основе функции, определенной пользователем Глава 39. Вывод типов 39.0. Вывод типов - общие сведения 39.1. Вывод примитивных типов 39.2. Вывод примитивных типов для констант (const) и полей только для чтения (readonly) 39.3. Вывод объектных типов 39.4. Вывод типа для полей класса на основе инициализации их в конструкторе 39.5. Вывод объединенных (Union) типов 39.6. Вывод пересечения (Intersection) с дискриминантными полями 39.7. Вывод типов кортеж (Tuple) Глава 40. Совместимость объектных типов (Compatible Object Types) 40.0. Важно 40.1. Совместимость объектных типов в TypeScript Глава 41. Совместимость функциональных типов (Compatible Function Types) 41.0. Важно 41.1. Совместимость параметров 41.2. Совместимость возвращаемого значения Глава 42. Совместимость объединений (Union Types) 42.0. Совместимость Глава 43. Типизация в TypeScript 43.0. Общие сведения 43.1. Статическая типизация (static typing) 43.2. Сильная типизация (strongly typed) 43.3. Явно типизированный (explicit typing) с выводом типов (type inference) 43.4. Совместимость типов (Type Compatibility), структурная типизация (structural typing) 43.5. Вариантность (variance) 43.6. Наилучший общий тип (Best common type) 43.7. Контекстный тип (Contextual Type) Глава 44. Оператор keyof, Lookup Types, Mapped Types, Mapped Types - префиксы + и - 44.0. Запрос ключей keyof 44.1. Поиск типов (Lookup Types) 44.2. Сопоставление типов (Mapped Types) 44.3. Префиксы + и - в сопоставленных типах Глава 45. Условные типы (Conditional Types) 45.0. Условные типы на практике 45.1. Распределительные условные типы (Distributive Conditional Types) 45.2. Вывод типов в условном типе 45.3. Ограничение infer с помощью extends Глава 46. Readonly, Partial, Required, Pick, Record 46.0. Readonly (сделать члены объекта только для чтения) 46.1. Partial (сделать все члены объекта необязательными) 46.2. Required (сделать все необязательные члены обязательными) 46.3. Pick (отфильтровать объектный тип) 46.4. Record (динамически определить поле в объектном типе) Глава 47. Exclude, Extract, NonNullable, ReturnType, InstanceType, Omit, Awaited 47.0. Exclude (исключает из T признаки присущие U) 47.1. Extract (общие для двух типов признаки) 47.2. NonNullable (удаляет типы null и undefined) 47.3. ReturnType (получить тип значения возвращаемого функцией) 47.4. InstanceType (получить через тип класса тип его экземпляра) 47.5. Parameters (получить тип размеченного кортежа описывающий параметры функционального типа) 47.6. ConstructorParameters (получить через тип класса размеченный кортеж описывающий параметры его конструктора) 47.7. Omit (исключить из T признаки ассоциированными с ключами перечисленных множеством K) 47.8. Awaited (рекурсивное развертывания промисов) Глава 48. Массивоподобные readonly типы, ReadonlyArray, ReadonlyMap, ReadonlySet 48.0. Массивоподобные readonly типы (модифицировать непосредственно в аннотации типа) 48.1. ReadonlyArray (неизменяемый массив) 48.2. ReadonlyMap (неизменяемая карта) 48.3. ReadonlySet (неизменяемое множество) Глава 49. Синтаксические конструкции и операторы 49.0. Операторы присваивания короткого замыкания (&&=, ||=, &&=) 49.1. Операнды для delete должны быть необязательными 49.2. Объявление переменных 'необязательными' при деструктуризации массивоподобных объектов 49.3. Модификатор abstract для описания типа конструктора Глава 50. Типизированный React 50.0. Расширение .tsx Глава 51. Функциональные компоненты 51.0. Определение компонента как Function Declaration 51.1. Определение компонента как Function Expression Глава 52. Классовые компоненты 52.0. Производные от Component 52.1. Производные от PureComponent Глава 53. Универсальные компоненты 53.0. Обобщенные компоненты (Generics Component) Глава 54. Типизированные хуки 54.00. Предопределенные хуки - useState() 54.01. Предопределенные хуки - useEffect() и useLayoutEffect() 54.02. Предопределенные хуки - useContext() 54.03. Предопределенные хуки - useReducer() 54.04. Предопределенные хуки - useCallback() 54.05. Предопределенные хуки - useRef() 54.06. Предопределенные хуки - useImperativeHandle() 54.07. Предопределенные хуки - useMemo() 54.08. Предопределенные хуки - useDebugValue() 54.09. Пользовательский хук Глава 55. Контекст (Context) 55.0. Определение контекста 55.1. Использование контекста Глава 56. HOC (Higher-Order Components) 56.0. Определение hoc 56.1. Определение hoc на основе функционального компонента 56.2. Определение hoc на основе классового компонента Глава 57. Пространства имен (namespace) и модули (module) 57.0. Namespace и module — предназначение 57.1. Namespace - определение 57.2. Модули (export, import) — определение 57.3. Конфигурирование проекта Глава 58. Настройка рабочего окружения 58.0. Настройка рабочего окружения 58.1. Сборка проекта с помощью tsc (TypeScript compiler) Глава 59. Сборка с использованием ссылок на проекты 59.0. Ссылки на проекты Глава 60. Декларации 60.00. Что такое декларация (Declaration) 60.01. Установка деклараций с помощью @types 60.02. Подготовка к созданию декларации 60.03. Разновидности деклараций 60.04. Декларации и область видимости 60.05. Декларации для библиотек с одной точкой входа 60.06. Декларации для библиотек с множеством точек входа 60.07. Создание деклараций вручную 60.08. Директива с тройным слешем (triple-slash directives) 60.09. Импортирование декларации (import) Глава 61. Публикация TypeScript 61.0. Публикация Глава 62. Опции компилятора 62.000. strict 62.001. suppressExcessPropertyErrors 62.002. suppressImplicitAnyIndexErrors 62.003. noImplicitAny 62.004. checkJs 62.005. JSX 62.006. jsxFactory 62.007. target (t) 62.008. extends 62.009. alwaysStrict 62.010. strictNullChecks 62.011. stripInternal 62.012. noImplicitThis 62.013. noImplicitUseStrict 62.014. baseUrl 62.015. paths 62.016. rootDir 62.017. rootDirs 62.018. traceResolution 62.019. lib 62.020. noLib 62.021. noResolve 62.022. noStrictGenericChecks 62.023. preserveConstEnums 62.024. removeComments 62.025. noUnusedLocals 62.026. noUnusedParameters 62.027. skipLibCheck 62.028. declarationDir 62.029. types 62.030. typeRoots 62.031. allowUnusedLabels 62.032. noImplicitReturns 62.033. noFallthroughCasesInSwitch 62.034. outFile 62.035. allowSyntheticDefaultImports 62.036. allowUnreachableCode 62.037. allowJs 62.038. reactNamespace 62.039. pretty 62.040. moduleResolution 62.041. exclude 62.042. noEmitHelpers 62.043. newLine 62.044. inlineSourceMap 62.045. inlineSources 62.046. noEmitOnError 62.047. noEmit 62.048. charset 62.049. diagnostics 62.050. declaration 62.051. downlevelIteration 62.052. emitBOM 62.053. emitDecoratorMetadata 62.054. forceConsistentCasingInFileNames 62.055. help (h) 62.056. importHelpers 62.057. isolatedModules 62.058. listEmittedFiles 62.059. listFiles 62.060. sourceRoot 62.061. mapRoot 62.062. maxNodeModuleJsDepth 62.063. project (p) 62.064. init 62.065. version (v) 62.066. watch (w) 62.067. preserveSymlinks 62.068. strictFunctionTypes 62.069. locale 62.070. strictPropertyInitialization 62.071. esModuleInterop 62.072. emitDeclarationsOnly 62.073. resolveJsonModule 62.074. declarationMap 62.075. strictBindCallApply 62.076. showConfig 62.077. build 62.078. verbose 62.079. dry 62.080. clean 62.081. force 62.082. incremental 62.083. tsBuildInfoFile 62.084. allowUmdGlobalAccess 62.085. disableSourceOfProjectReferenceRedirect 62.086. useDefineForClassFields 62.087. importsNotUsedAsValues 62.088. assumeChangesOnlyAffectDirectDependencies 62.089. watchFile 62.090. watchDirectory 62.091. fallbackPolling 62.092. synchronousWatchDirectory 62.093. noUncheckedIndexedAccess 62.094. noPropertyAccessFromIndexSignature 62.095. explainFiles 62.096. noImplicitOverride 62.097. useUnknownInCatchVariables 62.098. exactOptionalPropertyTypes 62.099. preserveValueImports 62.100. moduleSuffixes
Similar books
Методические рекомендации по улучшению качества молока: для направлений подготовки бакалавров 19.03.03 «Продукты питания животного происхождения» профиль «Технология молока и молочных продуктов», 15.03.02 «Технологические машины и оборудование» профиль « Машины и аппараты пищевых производств», 36.03.02 «Зоотехния» Профиль «Технология производства продуктов животноводства». Для направлений подготовки магистров: 27.04.01 «Стандартизация и метрология» магистерская программа «Стандартизация и сертификация в пищевой промышленности
2015 · PDF
Водный транспорт леса: методические указания к выполнению курсовой работы «Организация первоначального плотового лесосплава» для студентов бакалавриата направления подготовки 35.03.02 «Технология лесозаготовительных и деревоперерабатывающих производств», профиль «Лесоинженерное дело» всех форм обучения: Методические указания к выполнению курсовой работы «Организация первоначального плотового лесосплава» для студентов бакалавриата направления подготовки 35.03.02 «Технология лесозаготовительных и деревоперерабатывающих
2020 · PDF
Определенный интеграл по фигуре от скалярной функции. Практическая часть: пособие для студентов специальностей 1-70 01 01 «Производство строительных изделий и конструкций»; 1-70 02 01 «Промышленное и гражданское строительство»; 1-70 02 02 «Экспертиза и управление недвижимостью»; 1-70 03 01 «Автомобильные дороги»; 1-70 03 02 «Мосты, транспортные тоннели и метрополитены»; 1-70 04 01 «Водохозяйственное строительство»; 1-70 04 02 «Теплогазоснабжение, вентиляция и охрана воздушного бассейна»; 1-70 04 03 «Водоснабжение, водоотведение и охрана водных ресурсов» и 1-70 07 01 «Строительство тепловых и атомных электростанций»
Студенческая наука для развития информационного общества : сборник материалов VI Всероссийской научно-технической конференции (Ставрополь, 22-26 мая 2017) : [в 2-х томах] / Министерство образования и науки Российской Федерации, Институт информационных технологий и телекоммуникаций Северо-Кавказского федерального университета (г. Ставрополь), Институт компьютерных технологий и информационной безопасности Инженерно-технологической академии Южного федерального университета (г. Таганрог), Ростовский государственный экономический университет (РИНХ) (г. Ростов-на-Дону)
Молодежная наука - развитию агропромышленного комплекса : материалы Всероссийской (национальной) научно-практической конференции студентов, аспирантов и молодых ученых, г. Курск, 3-4 декабря 2020 г. / Министерство сельского хозяйства Российской Федерации, Ассоциация аграрных вузов Центрального федерального округа, Комитет агропромышленного комплекса Курской области, Федеральное государственное бюджетное образовательное учреждение высшего образования "Курская государственная сельскохозяйственная академия имени И. И. Иванова", Совет молодых ученых ФГБОУ ВО Курская ГСКА ; редакционная коллегия: Харченко Е. В. (председатель) [и др.]
Студенческая наука для развития информационного общества : сборник материалов VI Всероссийской научно-технической конференции (Ставрополь, 22-26 мая 2017) : [в 2-х томах] / Министерство образования и науки Российской Федерации, Институт информационных технологий и телекоммуникаций Северо-Кавказского федерального университета (г. Ставрополь), Институт компьютерных технологий и информационной безопасности Инженерно-технологической академии Южного федерального университета (г. Таганрог), Ростовский государственный экономический университет (РИНХ) (г. Ростов-на-Дону)
Студенческая наука для развития информационного общества : сборник материалов VII Всероссийской научно-технической конференции (г. Ставрополь, 26-28 декабря 2017 года) : [в 2-х томах] / Министерство образования и науки Российской Федерации Северо-Кавказского федерального университета (г. Ставрополь), Институт компьютерных технологий и информационной безопасности Инженерно-технологической академии Южного федерального университета (г. Таганрог), Поволжский государственный университет телекоммуникаций и информатики (г. Самара), Ростовский государственный экономический университет (РИНХ) (г. Ростов-на-Дону)