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

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

Опубликовано 23 декабря 2024 г.
Просматривать:842

How to Perform Runtime Interface Type Checks in TypeScript?

Проверка типа интерфейса в TypeScript

В TypeScript вы можете столкнуться со сценарием, в котором определение соответствия объекта предопределенному интерфейсу во время выполнения имеет решающее значение . Хотя проверка типа класса с использованием ключевого слова экземпляра является простой, применение его к интерфейсам представляет собой проблему.

Традиционные подходы, такие как использование оператора экземпляра, оказываются неэффективными, поскольку интерфейсы не представлены как отдельные типы в скомпилированном JavaScript. Вместо этого защита пользовательских типов предлагает решение:

interface A {
    member: string;
}

function instanceOfA(object: any): object is A {
    return 'member' in object;
}

var a: any = { member: "foobar" };

if (instanceOfA(a)) {
    alert(a.member);
}

Этот подход позволяет проверять соответствие интерфейса во время выполнения без необходимости использования ключевого слова instanceof.

В ситуациях, когда необходимо проверить несколько элементов, можно ввести свойство дискриминатора. Этот подход требует управления собственными дискриминаторами и обеспечения уникальности во избежание конфликтов:

interface A {
    discriminator: 'I-AM-A';
    member: string;
}

function instanceOfA(object: any): object is A {
    return object.discriminator === 'I-AM-A';
}

var a: any = { discriminator: 'I-AM-A', member: "foobar" };

if (instanceOfA(a)) {
    alert(a.member);
}

Используя специальные средства защиты или дискриминаторы типов, вы можете эффективно выполнять проверки типов интерфейса во время выполнения, повышая надежность ваших приложений TypeScript.

Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3