Я получил объект JavaScript в ответ на удаленный HTTP-запрос. У меня есть модель kotlin (trait), которая определяет различные поля, которые я ожидаю от объекта (нулевые могут быть необязательными).Как создать объект JavaScript для объекта Kotlin?
Прежде всего, я хочу сделать проверку is
, чтобы убедиться, что мой объект на самом деле ожидаемого типа. Я изначально пробовал payload is MyModel
, но это не работает из-за того, как оператор is
написан в kotlin.js.
Во-вторых, я хочу отдать MyModel
, поэтому я могу получить автозаполнение и т. Д. На объекте, пока я работаю с ним. Обычно одного is
будет достаточно, но поскольку это не работает, мне тоже нужно что-то для этой проблемы.
Я хотел бы избежать ручного заполнения моего объекта с помощью dynamic
. Я бы не прочь сделать это так много, если бы мог использовать by Delegates.mapVal(...)
, но для этого требуется Map<String, Any?>
, и я не знаю, как получить полезную нагрузку в Map<String, Any?>
.
Я попробую это, когда вернусь домой, но из того, что я помню из своей оригинальной проблемы, проверка 'is' в вашем # 2 не удастся. Если я правильно помню, JavaScript, сгенерированный из проверки 'is', проверяет соответствие прототипов, которых они не будут, потому что все, что у меня есть, - это простой старый объект JavaScript без прототипа, просто полей. –
Как я уже сказал в (1), мы не можем проверить конструктивно структуру по соображениям производительности. Я думаю, что общее решение будет дорогостоящим. – bashor
Замечание для классов. '' '' '' '' Использует JS 'instanceof'. – bashor