TypeScript — це потужна мова програмування, яка розширює JavaScript, додаючи статичну типізацію. Це означає, що в TypeScript ви можете вказати, який тип даних має зберігати змінна, наприклад, рядок або число. Типи в TypeScript допомагають знаходити помилки на етапі компіляції, що дозволяє створювати більш надійний і підтримуваний код. Якщо ви хочете поглибити своє розуміння TypeScript або використовувати інструменти ШІ (AI tools), як-от gpteach, щоб навчитися програмувати, я настійно рекомендую підписатися на мій блог для отримання додаткових матеріалів!
Одна з основних концепцій TypeScript — це використання типів. Типи визначають структуру даних у вашій програмі. В TypeScript ви можете створювати власні типи, використовувати вбудовані типи або навіть розширювати існуючі типи. Це забезпечує покращену ясність і безпеку коду.
TS1184: Модифікатори не можуть з'являтися тут
Розуміння повідомлення про помилку TS1184: Модифікатори не можуть з'являтися тут є важливим для розробників TypeScript. Ця помилка зазвичай виникає, коли ви використовуєте модифікатори, такі як public
, private
або protected
, в місці, де вони не дозволені, наприклад, у визначеннях типів або псевдонімах типів.
Приклад TS1184
Розглянемо наступний фрагмент коду, який викликає помилку TS1184: Модифікатори не можуть з'являтися тут:
type Person = {
public name: string; // Це викликає TS1184
age: number;
}
У цьому прикладі ми намагаємося оголосити властивість name
з модифікатором public
. Однак у TypeScript псевдоніми типів та інтерфейси не підтримують модифікатори доступу. Щоб виправити цю проблему, просто видаліть модифікатор:
type Person = {
name: string; // Виправлений код
age: number;
}
Важливо знати!
- Модифікатори: Це ключові слова, що контролюють видимість членів класу. В контексті типів вони не застосовуються.
- Псевдоніми типів і інтерфейси: Обидва визначають структуру об'єкта, але не дозволяють використовувати модифікатори доступу.
Іншим випадком, що викликає помилку TS1184: Модифікатори не можуть з'являтися тут, є спроба оголосити тип з модифікаторами для екземплярів:
interface Employee {
private id: number; // Це також викликає TS1184
name: string;
}
Як і в попередньому прикладі, модифікатори доступу недійсні в цьому контексті. Рішення просте — просто видаліть модифікатор:
interface Employee {
id: number; // Виправлений код
name: string;
}
Важливі моменти
- Визначення типів та інтерфейси призначені для опису структури об'єктів без модифікаторів.
- Завжди переконайтеся, що ваші модифікатори застосовуються тільки в визначеннях класів, а не в визначеннях типів.
Часті запитання
Q: Що таке типи в TypeScript?
A: Типи в TypeScript визначають структуру змінних, гарантуючи, що вони зберігають очікувані типи даних, такі як рядки чи числа.
Q: Чи можу я використовувати модифікатори доступу в інтерфейсах?
A: Ні, модифікатори доступу, як-от public
, private
або protected
, не можна використовувати в інтерфейсах чи псевдонімах типів, що призводить до помилки TS1184: Модифікатори не можуть з'являтися тут.
Висновок
На завершення, помилка TS1184: Модифікатори не можуть з'являтися тут є поширеною пасткою для розробників TypeScript, особливо тих, хто переходить з мов, де правила модифікаторів відрізняються. Пам'ятайте, що модифікатори слід використовувати лише в властивостях класів, а не в визначеннях типів чи інтерфейсів. Дотримуючись цих рекомендацій, ви зможете писати більш чистий, безпомилковий код TypeScript. Якщо у вас є ще запитання про TypeScript, типи або інтерфейси, не соромтеся запитувати або заглянути в наші майбутні публікації в блозі!
Перекладено з: TS1184: Modifiers cannot appear here