В Javascript есть удобный способ проверить, существует ли класс (или любой другой) в глобальной области видимости:
typeof SomeUndeclaredOne === 'undefined'
Этот метод не работает в машинописном тексте, потому что он вызывает ошибку компиляции:
error TS2304: Cannot find name 'SomeUndeclaredOne'
Итак, мой вопрос: как проще всего проверить, существует ли класс в машинописном тексте? Я ищу общий способ, который работает не только в браузерах, но и в других средах (например, node.js или других средах, в которых нет глобального объекта), а также работает с популярными модульными системами (такими как ESModules, CommonJS).
Спасибо заранее за любые советы.
Наиболее очевидное использование этого — машинописный код, который ведет себя по-разному в зависимости от среды. Например, я хочу написать программу, которая выполняет определенные действия с классом Buffer Node.js, но при этом работает в браузерах (где нет класса Buffer)
Вы можете declare
класс с TypeScript, чтобы избавиться от ошибки.
declare class SomeUndeclaredOne {}
console.info(typeof SomeUndeclaredOne === "undefined")
Большое спасибо! Это точный и полный ответ на мой вопрос.
Какой вариант использования у вас есть для этого в машинописном тексте? Поскольку это строго типизированный язык, я бы явно ожидал, что компилятор выдаст все ошибки типов во время компиляции, а не во время выполнения.