TS1164: Обчислені імена властивостей не дозволяються в enum.

TypeScript — потужна надмножина JavaScript, яка додає статичні типи до мови. Це означає, що ви можете визначати типи змінних, параметрів функцій та значень, що повертаються, що робить ваш код більш зручним для читання, розуміння та підтримки. Типи в TypeScript допомагають описати структуру даних, забезпечуючи відповідність значень очікуваним форматам. Це призводить до меншої кількості помилок під час виконання і кращих інструментів для розробників, таких як автодоповнення та перевірка типів.

Якщо ви хочете дізнатися більше про TypeScript або використовувати інструменти ШІ (AI tools), як-от gpteach, для покращення своїх навичок програмування, обов'язково підпишіться на мій блог!

Що таке Enums?

Enum (перерахування) в TypeScript — це спосіб визначити набір іменованих констант. Вони особливо корисні для представлення колекції пов'язаних значень у більш змістовний спосіб. Наприклад, якщо ви хочете визначити набір кольорів, можна використовувати enum:

enum Colors {  
 Red,  
 Green,  
 Blue,  
}

Це створює enum під назвою Colors з трьома іменованими значеннями. Enum може мати числові або стрічкові значення, що робить їх дуже гнучкими.

TS1164: Обчислені імена властивостей не дозволяються в enum

Тепер давайте розглянемо помилку, що виникає при TS1164: Обчислені імена властивостей не дозволяються в enum. Ця помилка з'являється, коли ви намагаєтеся використовувати обчислені імена властивостей у визначенні enum. Обчислені імена властивостей використовують квадратні дужки для обчислення імені властивості з виразу, що дозволяє динамічно створювати властивості.

Приклад помилки:

Розглянемо наступний фрагмент коду:

const colorPrefix = 'Color';  
enum Colors {  
 [colorPrefix + 'Red'] = 'Red', // Це викликає TS1164  
 [colorPrefix + 'Green'] = 'Green',  
 [colorPrefix + 'Blue'] = 'Blue',  
}

У цьому прикладі ми намагаємося створити члени enum, використовуючи обчислені імена властивостей. Цей підхід недійсний у TypeScript, що призводить до помилки TS1164: Обчислені імена властивостей не дозволяються в enum.

Виправлення помилки

Щоб вирішити цю помилку, потрібно уникати використання обчислених імен властивостей у перерахуваннях. Замість цього визначте члени enum з фіксованими іменами:

enum Colors {  
 ColorRed = 'Red',  
 ColorGreen = 'Green',  
 ColorBlue = 'Blue',  
}

Визначаючи статичні імена властивостей, ви дотримуєтеся обмежень TypeScript і усуваєте помилку TS1164.

Важливо знати!

  • Enum в TypeScript є потужним інструментом для групування пов'язаних констант, але їх потрібно визначати з фіксованими іменами.
  • Використання обчислених імен властивостей не підтримується в визначеннях enum; завжди використовуйте статичні імена замість цього.

Часті запитання

Q1: Що станеться, якщо я ігнорую помилку TS1164?
Ігнорування цієї помилки може призвести до проблем під час виконання або непередбачуваної поведінки у вашому TypeScript додатку, оскільки enum не буде скомпільований правильно.

Q2: Чи можу я використовувати enum з стрічковими значеннями?
Так! Enum також можуть бути визначені зі стрічковими значеннями, що може бути більш змістовним при представленні станів або категорій.

Q3: Чи є enum лише концепцією TypeScript?
Enum — це особливість TypeScript, хоча подібні конструкції можуть існувати в інших мовах програмування.

Важливі моменти

  1. Члени enum повинні мати статичні імена; використання обчислених імен властивостей не дозволяється (що призводить до TS1164).
  2. Ви можете використовувати як числові, так і стрічкові значення для членів enum.
  3. TypeScript надає відмінні інструменти для перевірки типів, що допомагає знаходити такі помилки під час розробки, покращуючи загальну якість коду.

На завершення, розуміння обмежень, накладених на enum у TypeScript, є важливим для ефективного програмування в цій мові. Дотримуючись правил щодо enum, ви можете забезпечити стабільність і передбачуваність вашого TypeScript коду, уникаючи таких помилок, як TS1164: Обчислені імена властивостей не дозволяються в enum. Тому завжди пам'ятайте використовувати фіксовані імена для ваших enum, щоб ваш TypeScript код був чистим і без помилок!

Перекладено з: TS1164: Computed property names are not allowed in enums

Leave a Reply

Your email address will not be published. Required fields are marked *