Как вы вызываете удаление JavaScript из Kotlin?

Я работаю с сторонней библиотекой от Kotlin, и одна из вещей, которую я должен сделать, – это вызвать delete thing[key] , чтобы удалить элемент из вещи. Я не могу понять, как это сделать из кода Котлина.

Я попробовал js("delete thing[key]") , но вещь является параметром функции и искажается именем компилятора Kotlin> JavaScript, поэтому при выполнении строки генерируется исключение. Я также попробовал js("delete ") thing[key] но неудивительно, что это тоже не сработало.

Для оператора delete Вы можете написать:

 native fun delete(p: dynamic): Boolean = noImpl //... delete(thing[key]) 

Для более удобного использования я добавил несколько помощников:

 fun delete(thing: dynamic, key: String) { delete(thing[key]) } // or fun String.deleteFrom(d: dynamic) { delete(d[this]) } fun test(a: Any, k: String) { delete(a, k) k.deleteFrom(a) k deleteFrom a } 

Примечание: использование оператора delete не является хорошей практикой, и это приведет к деоптимизации в виртуальных машинах JS