«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как получить ключи интерфейса TypeScript в виде массива строк?

Как получить ключи интерфейса TypeScript в виде массива строк?

Опубликовано 16 ноября 2024 г.
Просматривать:556

How to Retrieve the Keys of a TypeScript Interface as an Array of Strings?

Доступ к ключам интерфейса Typescript как массиву строк

Введение

Работа с табличными данными в Typescript требует использования интерфейсов для определения столбца структуры. Чтобы эффективно манипулировать этими структурами, часто необходимо получить имена свойств этих интерфейсов в виде массива строк.

Решение

Использование пользовательских преобразователей

Начиная с версии Typescript 2.4 пользовательские преобразователи предоставляют механизм извлечения ключей из интерфейсов. Рассмотрим следующий интерфейс:

interface IMyTable {
  id: number;
  title: string;
  createdAt: Date;
  isDeleted: boolean;
}

Чтобы получить имена свойств в виде массива:

import { keys } from 'ts-transformer-keys';

const IMyTable = keys();

console.log(IMyTable); // ["id", "title", "createdAt", "isDeleted"]

Ограничения пользовательских преобразователей

Хотя пользовательские преобразователи предлагают удобное решение, они требуют использования Typescript API трансформации, а не команду ts. Это ограничение может затруднить их использование.

Альтернативы

В сценариях, где пользовательские преобразователи невозможны, альтернативные варианты включают:

  • Использование методов отражения (не рекомендуется для повышения производительности). причины)
  • Явное указание массива имен свойств (возможны человеческие ошибки и накладные расходы на обслуживание)
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3