«Hello, World!» допоможе написати перший код мовою TypeScript і познайомитися з робочим процесом Exercism. Його завершення відкриває решту треку TypeScript.
Перегляньте відео «Вступ до Hello, World», щоб почати 👇
Класична вступна вправа. Просто скажімо «Hello, World!».
«Hello, World!» - це традиційна перша програма для початківців у програмуванні новою мовою чи в новому середовищі.
Завдання прості:
Якщо все мине добре, ми будемо готові взятися за свою першу справжню вправу.
Пройдімо інструкції з налаштування TypeScript, щоб установити потрібні залежності:
https://exercism.org/docs/tracks/typescript/installation
Установіть залежності завдання:
$ yarn install
Запустіть тести командою:
$ yarn test
У багатьох наборах тестів усі тести, крім першого, пропущено.
Коли тест почне проходити, можна зняти пропуск з наступного, змінивши xit на it.
Цей розділ - покроковий посібник із розвʼязання цієї вправи.
Ця вправа містить два файли:
У першому файлі ми будемо писати код. У другому визначено тести.
Тести будуть перевіряти, чи наш код робить те, що потрібно. Не потрібно вміти писати набір тестів з нуля, але корисно розуміти, який вигляд має тест і що він робить.
Відкрийте файл із тестами, hello-world.test.ts. Усередині є один тест:
it('says hello world', () => {
expect(hello()).toEqual('Hello, World!')
})
Запустіть тест такою командою в командному рядку:
$ yarn test
Тест не проходить, і це логічно, адже ми ще не написали жодного коду.
Помилка має такий вигляд:
× says hello world (5ms)
● Hello World › says hello world
expect(received).toEqual(expected) // deep equality
Expected: "Hello, World!"
Received: "Goodbye, Mars!"
4 |
5 | it('says hello world', () => {
> 6 | expect(hello()).toEqual('Hello, World!')
| ^
7 | })
8 |
9 | })
at Object.it (hello-world.test.ts:6:32)
А ось ті рядки коду з імовірними дефектами у файлі hello-world.test.ts:
6-й рядок:
expect(hello()).toEqual('Hello, World!')
^
Отже, проблема у виклику функції hello().
Ми бачимо, що тест очікує на вихідні дані 'Hello, World!', а натомість отримує "Goodbye, Mars!".
Тож тепер перевірмо цю функцію у файлі hello-worlds.ts:
export function hello(): string {
return 'Goodbye, Mars!'
}
Тепер бачимо, що функція повертає неправильний рядок тексту (англ. string), і саме через це тест не проходить. Виправмо це, змінивши повернене значення:
export function hello(): string {
return 'Hello, World!'
}
Запустіть тест ще раз:
PASS ./hello-world.test.ts
Hello World
√ says hello world (4ms)
І тест проходить!
Зареєструйтеся на Exercism, щоб вивчати й опановувати TypeScript, а також 108 вправ та справжнє наставництво від людей, і все це безкоштовно.