KotlinJS:我什么时候可以使用Kotlin动态types
这与KotlinJS (将Kotlin转换为JavaScript)相关:
Kotlin有一个dynamic
types,如下所示:
val dyn: dynamic ="String" dyn.thisMethodDoesNotExist(1,2,3)
将不会执行任何types检查,代码将被“按原样”放入生成的JS文件中。
“动态最奇特的特点是允许我们用动态variables上的任何参数调用任何属性或函数”
虽然这个概念对我来说很有意义,但我一直在想,在什么情况下我们需要这个function。 有没有人有具体的例子或用例?
Kotlin允许我们编写types安全的 JavaScript,这是利用转译事物的原因之一,对吗? 为什么我们要放弃并使用动态呢?
文档中有一个用于dynamic
types的示例用例:
如果你想使用例如JQuery 插件 (例如table thingy),它没有提供相应的头 文件 ,你必须动态地调用它,因为没有可用于静态分析的库的Kotlin等价物。
这样,我们可以在我们的动态types上调用dataTable()
,尽管函数在编译时是不知道的。
另外,有时可能会有编程安全的界面,这是很难得到的。 如果你可以放弃types安全来获得简洁的回报,那么使用dynamic
可能是可以接受的。 这样的例子在下面的文章中描述: https : //medium.com/@Cypressious/your-second-firefox-extension-in-kotlin-bafd91d87c41
“使用外部声明 – 静态方式” 与 “使用外部声明 – 动态方式”