Итоги
В этом уроке вы узнали, что:
- Аннотация типа говорит, что может хранить переменная:
let heroName: string = "Кира";. Основные типы —string,numberиboolean, строчными буквами. С аннотацией TypeScript проверяет и первое значение. - Когда переменная сразу получает значение, достаточно выведенного типа. Тип пишут там, где значение его не говорит: для переменной без значения, пустого массива или кортежа.
- Для переменной без значения,
let reward: number;, TypeScript проверяет, что каждый путь сохраняет значение до того, как переменная используется. Иначе он сообщаетTS2454, чаще всего из-за пропущенногоelse. - Арифметике (
-,*,/,%) нужны числа:"15" * 2— это ошибкаTS2362. Сравнивать число со строкой — тоже ошибка (TS2367,TS2365).+со строкой склеивает.Number("15")превращает строку в число, аString(15)— число в строку. - У массивов есть типы вроде
string[]иnumber[]. Добавить значение другого типа — ошибкаTS2345. Пустому массиву нужен тип:const loot: string[] = [];. - Кортеж, например
[string, number], имеет фиксированное число элементов, у каждого свой тип, по порядку:const arrows: [string, number] = ["Стрела", 20];. - Константе нельзя присвоить значение повторно (
TS2588). Её тип — литеральный тип: уconst maxLevel = 10;тип10, а уlet level = 3;—number. Литеральный тип можно написать и как аннотацию:let difficulty: "hard" = "hard";допускает только это единственное значение. Используйтеconstдля значений, которые не меняются. anyотключает проверку, и баги JavaScript возвращаются. Избегайте его.
В следующем уроке, «Функции», вы зададите типы параметрам и возвращаемым значениям функций, чтобы TypeScript проверял каждый вызов: получает ли функция верные значения, в верном ли количестве и что она возвращает.
Задание
- 1
Практика: Кира отправляется за покупками на рынок. Под двумя строками в редакторе создайте пустой массив
cartдля названий купленных предметов и кортежlanternс названием"Фонарь"и ценой30. Дайте обоим правильные типы. - 2
Кира покупает фонарь. Добавьте его название из кортежа в
cart, вычтите его цену, тоже из кортежа, изgoldи выведите корзину и золото с помощьюconsole.log("Корзина:", cart, "Золото:", gold);. Программа выведет:Корзина: ["Фонарь"] Золото: 70 - 3
Затем она покупает верёвку, цена которой написана на вывеске Бруно строкой, в
ropeSign. Добавьте"Верёвка"вcart, вычтите цену верёвки изgoldи выведите ту же строку ещё раз, чтобы программа вывела:Корзина: ["Фонарь"] Золото: 70 Корзина: ["Фонарь", "Верёвка"] Золото: 58