У меня есть простой тип строковых литералов и нужно проверить его достоверность из-за того, что FFI вызывает «обычный» Javascript. Есть ли способ гарантировать, что определенная переменная является экземпляром любой из этих литералов строк во время выполнения? Что-то вдоль линийПроверка правильности типа объединения строк в runtime?
type MyStrings = "A" | "B" | "C";
MyStrings.isAssignable("A"); // true
MyStrings.isAssignable("D"); // false
Это работает, но ломается, как только 'MyStrings' продолжается без обновления соответствующего' функции isAssignable'. Я надеялся на что-то менее ручное. –
Не так много можно сделать. Как я писал, часть 'type' является строго машинописным текстом и эта информация теряется в сгенерированном js-файле. Вы можете использовать 'enum' вместо этого' type'. –
Если вы хотите приложить усилия, вы можете написать инструмент для генерации TS-кода, который определяет тип И код TS, который проверяет тип выполнения из какого-либо другого источника данных. Я работал над кодом, в котором REST API был написан на C#, и мы скомпилировали контракты данных C# в TS, как определение типа, так и интроспективный объектный литерал, описывающий тип. Понятно, что все это выходит за рамки TS. – Alan