Розділ 1 з 10

Навіщо TypeScript у Playwright

Playwright підтримує TypeScript «з коробки»: ви пишете тести у файлах .ts, а раннер сам читає їх, трансформує в JavaScript і запускає. Жодного окремого кроку збирання не потрібно.

Типи дають чотири речі, які особливо відчутні у великому тестовому наборі. Перша — автодоповнення: редактор знає всі методи page, Locator і expect та їхні параметри, тож не треба тримати API в голові. Друга — помилки до запуску: друкарська помилка в назві методу чи пропущений аргумент підсвічуються одразу, а не через хвилину прогону. Третя — самодокументування: сигнатура login(page: Page, username: string, password: string): Promise<void> розповідає про функцію більше, ніж коментар. Четверта — безпечний рефакторинг: коли ви перейменовуєте поле в інтерфейсі тестових даних, компілятор покаже кожне місце, яке треба оновити.

Той самий тест: JavaScript проти TypeScript

Перемкніть мову й подивіться, які помилки редактор і tsc знаходять ще до запуску.

Хто насправді ловить помилки типів

Проблема. Поширене уявлення: «раз тести на TypeScript, то Playwright не дасть запустити код із помилкою типу».

Чому це не так. Документація прямо каже, що Playwright не перевіряє типи і запускає тести навіть за наявності некритичних помилок компіляції TypeScript. Раннер лише трансформує код. Помилки з прикладу вище показують мовний сервіс TypeScript у редакторі та компілятор tsc.

Рішення. Запускайте компілятор окремо, у режимі лише перевірки: npx tsc -p tsconfig.json --noEmit. Локально зручно тримати його в режимі спостереження з прапорцем -w, а в CI ставити окремим кроком перед тестами.

Коли. Завжди, коли проєкт на TypeScript. Без цього кроку помилка типу може тихо дожити до падіння тесту під час виконання.