«Эффективный TypeScript» необходим тем, кто уже имеет опыт работы с JavaScript. Цель этой книги — не научить пользоваться инструментами, а помочь повысить профессиональный уровень.
TypeScript представляет собой не просто систему типов, а набор служб языка, удобных в использовании. Он повышает безопасность разработки в JavaScript, делает работу увлекательнее и проще.
Author(s): Дэн Вандеркам
Series: Бестселлеры O’Reilly
Edition: 1
Publisher: Питер
Year: 2020
Language: Russian
Commentary: Vector PDF
Pages: 288
City: СПб.
Tags: JavaScript; Web Applications; Best Practices; TypeScript; Type Inference
Отзывы
Введение
От издательства
Глава 1. Знакомство с TypeScript
Правило 1. TypeScript и JavaScript взаимосвязаны
Правило 2. Выбирайте нужные опции в TypeScript
Правило 3. Генерация кода не зависит от типов
Правило 4. Привыкайте к структурной типизации
Правило 5. Ограничьте применение типов any
Глава 2. Система типов в TypeScript
Правило 6. Используйте редактор для работы с системой типов
Правило 7. Воспринимайте типы как наборы значений
Правило 8. Правильно выражайте отношение символа к пространству типов или пространству значений
Правило 9. Объявление типа лучше его утверждения
Правило 10. Избегайте оберточных типов (String, Number, Boolean, Symbol, BigInt)
Правило 11. Проверяйте пределы исключительных свойств типа
Правило 12. По возможности применяйте типы ко всему выражению функции
Правило 13. Знайте разницу между type и interface
Правило 14. Операции типов и обобщения сокращают повторы
Правило 15. Используйте сигнатуры индексов для динамических данных
Правило 16. В качестве сигнатур индексов используйте массивы, кортежи и ArrayLike, но не number
Правило 17. Используйте readonly против ошибок, связанных с изменяемостью
Правило 18. Используйте отображенные типы для синхронизации значений
Глава 3. Вывод типов
Правило 19. Не засоряйте код ненужными аннотациями типов
Правило 20. Для разных типов — разные переменные
Правило 21. Контролируйте расширение типов
Правило 22. Старайтесь сужать типы
Правило 23. Создавайте объекты целиком
Правило 24. Применяйте псевдонимы согласованно
Правило 25. Для асинхронного кода используйте функции async вместо обратных вызовов
Правило 26. Используйте контекст при выводе типов
Правило 27. Используйте функциональные конструкции и библиотеки для содействия движению типов
Глава 4. Проектирование типов
Правило 28. Используйте типы, имеющие допустимые состояния
Правило 29. Будьте либеральны в том, что берете, но консервативны в том, что даете
Правило 30. Не повторяйте информацию типа в документации
Правило 31. Смещайте нулевые значения на периферию типов
Правило 32. Предпочитайте объединения интерфейсов интерфейсам объединений
Правило 33. Используйте более точные альтернативы типов string
Правило 34. Лучше сделать тип незавершенным, чем ошибочным
Правило 35. Генерируйте типы на основе API и спецификаций, а не данных
Правило 36. Именуйте типы согласно области их применения
Правило 37. Рассмотрите использование маркировок для номинального типизирования
Глава 5. Эффективное применение any
Правило 38. Используйте максимально узкий диапазон для типов any
Правило 39. Используйте более точные варианты any
Правило 40. Скрывайте небезопасные утверждения типов в грамотно типизированных функциях
Правило 41. Распознавайте изменяющиеся any
Правило 42. Используйте unknown вместо any для значений с неизвестным типом
Правило 43. Используйте типобезопасные подходы вместо обезьяньего патча
Правило 44. Отслеживайте зону охвата типов для сохранения типобезопасности
Глава 6. Декларации типов и @types
Правило 45. Размещайте TypeScript и @types в devDependencies
Правило 46. Проверяйте совместимость трех версий, задействованных в декларациях типов
Правило 47. Экспортируйте все типы, появляющиеся в публичных API
Правило 48. Используйте TSDoc для комментариев в API
Правило 49. Определяйте тип this в обратных вызовах
Правило 50. Лучше условные типы, чем перегруженные декларации
Правило 51. Зеркалируйте типы для разрыва зависимостей
Правило 52. Тестируйте типы с осторожностью
Глава 7. Написание и запуск кода
Правило 53. Используйте возможности ECMAScript, а не TypeScript
Правило 54. Производите итерацию по объектам
Правило 55. Иерархия DOM — это важно
Правило 56. Не полагайтесь на private при скрытии информации
Правило 57. Используйте карты кода для отладки
Глава 8. Перенос данных в TypeScript
Правило 58. Пишите современный JavaScript
Правило 59. Используйте // @ts-check и JSDoc для экспериментов в TypeScript
Правило 60. Используйте allowJs для совмещения TypeScript и JavaScript
Правило 61. Конвертируйте модуль за модулем, восходя по графу зависимостей
Правило 62. Не считайте миграцию завершенной, пока не включите noImplicitAny
Об авторе
Об обложке