Треки
/
TypeScript
TypeScript
/
Вправи
/
Привіт, світ!
Привіт, світ!

Привіт, світ!

Вправа-туторіал

Вступ

«Hello, World!» допоможе написати перший код мовою TypeScript і познайомитися з робочим процесом Exercism. Його завершення відкриває решту треку TypeScript.

Перегляньте відео «Вступ до Hello, World», щоб почати 👇

Вказівки

Класична вступна вправа. Просто скажімо «Hello, World!».

«Hello, World!» - це традиційна перша програма для початківців у програмуванні новою мовою чи в новому середовищі.

Завдання прості:

  • Змініть наданий код так, щоб він утворював рядок тексту (англ. string) «Hello, World!».
  • Запустіть набір тестів і переконайтеся, що він успішно проходить.
  • Надішліть своє рішення і перевірте його на сайті.

Якщо все мине добре, ми будемо готові взятися за свою першу справжню вправу.

Налаштування

Пройдімо інструкції з налаштування TypeScript, щоб установити потрібні залежності:

https://exercism.org/docs/tracks/typescript/installation

Вимоги

Установіть залежності завдання:

$ yarn install

Як зробити, щоб набір тестів проходив

Запустіть тести командою:

$ yarn test

У багатьох наборах тестів усі тести, крім першого, пропущено.

Коли тест почне проходити, можна зняти пропуск з наступного, змінивши xit на it.

Туторіал

Цей розділ - покроковий посібник із розвʼязання цієї вправи.

Ця вправа містить два файли:

  • hello-world.ts
  • hello-world.test.ts

У першому файлі ми будемо писати код. У другому визначено тести.

Тести будуть перевіряти, чи наш код робить те, що потрібно. Не потрібно вміти писати набір тестів з нуля, але корисно розуміти, який вигляд має тест і що він робить.

Відкрийте файл із тестами, 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)

І тест проходить!

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
TypeScript Exercism

Час розпочати Привіт, світ!?

Зареєструйтеся на Exercism, щоб вивчати й опановувати TypeScript, а також 108 вправ та справжнє наставництво від людей, і все це безкоштовно.