问题标签 [kotlin-js-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
444 浏览

kotlin - 如何使用 KotlinJS 正确测试 Web 套接字连接

我无法测试使用本机的代码WebSocket。这是测试函数的主体:

我将 Karma 与 Mocha 测试运行器一起使用。以下代码执行时没有任何错误,但setTimeout实际上被忽略且从未执行。

Mocha 似乎支持setTimeout基于--delay. 但是,当我使用带有client: { mocha: { delay: true } }Karma 配置的标志时,测试只是冻结并失败,输出以下原因消息:

已断开连接,因为 60000 毫秒内没有消息。

执行测试的正确方法是什么setTimeout?如果这很棘手,有没有其他方法可以WebSocket在它完全连接后执行断言?我还没有使用任何特定于 Mocha 的功能,所以我不介意更改框架。

0 投票
1 回答
283 浏览

javascript - 使用 Kotlin 创建简单的 Node 服务器

我正在尝试使用 Kotlin 创建一个简单的节点服务器来复制这里的基本示例:

所以,我做了以下事情:

新建文件夹,命名为node

npm package使用创建npm init

gradle project使用此命令创建新的:gradle init --type java-library

删除src/mainsrc/test文件夹

创建src/kotlinsrc/resources文件夹

将文件内容替换为build.gradle

kotlinnpm本地版本安装:注意npm i kotlin :全局安装npm i -g kotlin根本不起作用。

注意:我也使用npm installnpm i在将依赖项添加到package.json文件之后执行此操作,如下所示:

创建我的文件src/kotlin/Main.Kt如下:

使用构建项目gradle buildindex.js根据需要生成文件。

一旦运行该文件node index.js,它就不起作用了,并且看起来应用程序没有读取porthost调用server.listen.

该应用程序的结构、代码和输出在此屏幕截图中:

在此处输入图像描述

index.js生成的是:

0 投票
0 回答
405 浏览

angular - 从 TS Angular Webapp 访问用 Kotlin 编写的库

我有一个用 Kotlin 编写的库,我想从一个用 TypeScript 编写的 Angular Webapp 中使用它,但我最终得到了Uncaught Error: Error loading module 'js'. Its dependency 'kotlin' was not found. Please, check whether 'kotlin' is loaded prior to 'js'.

做到了 npm install --save kotlin,但我不太确定如何处理它,也不知道如何使我的RpnCalculatorService.

<script src="assets/kotlin/kotlin.js"></script>在我的 index.html 中做了,它有效但感觉非常错误,并且import {RpnCalculatorService} from './MathLib/js';不会产生任何错误,但我无法通过调用来创建新服务new RpnCalculatorService()

0 投票
1 回答
74 浏览

kotlin - KProperty1 的不同语义在 JS 中与 JVM 相比

它看起来KProperty1<T, R>在 JVM 和 JS 中具有不同的语义,例如,当这个测试在 JVM 上工作时:

它在 Javascript 中失败并显示以下消息:

任何想法如何解决这个问题?

0 投票
2 回答
890 浏览

reactjs - 将 3rd 方 React 组件导入 kotlin.js 项目的正确方法是什么?

我正在尝试在我的create-react-kotlin-app中使用这个库:

https://material-ui-next.com/

我想生成一堆类型安全的包装器。我是这样开始的:

...

并像这样使用它:

这是正确的方法吗?

0 投票
2 回答
447 浏览

kotlin - 带有 javascript Uint8ClampedArray 的 Kotlin 无符号字节

我有一个程序试图在 Kotlin 程序中设置表示为Uint8ClampedArray的 ImageData 值。根据set 方法的规范,我需要将一个 Kotlin 字节传递到数组中,但 Kotlin 字节是有符号的:

我的问题是 Javascript 只会将其读取为 127,而不是 255。如何将此数组的值设置为大于 127?我什至找不到一种 hack-y 方法来让 JS 结果读取我想要的内容,因为最终赋值需要一个不允许大于 127 的值的有符号字节。

0 投票
0 回答
322 浏览

javascript - 有没有办法编写 Kotlin 代码来生成像“AppComponent.annotations”这样的 javascript

我正在尝试使用 Kotlin 编写有角度的 JavaScript 代码。以下是 Angular 的一些有效 Javascript 代码:

但我无法编写适当的 Kotlin 代码来生成这种形式的 JavaScript 代码。

我尝试使用伴随对象:

但它实际上会产生

这是行不通的。

有可能修复它吗?

0 投票
1 回答
114 浏览

javascript - How to generate a javascript function with `this.field=value` in body, in KotlinJs

When I use KotlinJS with riot, it requires a function like following to define a tag:

Though I can write the Kotlin code like this:

But you can see it has several problems:

  1. We have to use some js("this") tricks
  2. self.name, self.message, and similar, there are a lot of dynamic code all over the function body

How to avoid them? I want to write pure, type-safe Kotlin code as much as possible.

And, in advance, is it possible to define a class which has clearer structure, like:

I can accept to do some conversions against the class to generate the required function.

0 投票
2 回答
166 浏览

javascript - 如何从 JavaScript 访问 Kotlin 对象

我正在使用 kotlin2js 从 Kotlin 代码生成 JS 库。然后我在 Javascript(不是 Kotlin)中使用这个库。该代码有一些 Kotlin 对象和一些普通类。我可以从 Javascript 访问普通类,但我无法以任何方式访问对象。

文档非常稀疏,只有相关的行可能是这样的:

Kotlin 在 JavaScript 中保留了惰性对象初始化。

我不确定那是什么意思。

0 投票
1 回答
320 浏览

gradle - 无法解析“/home/marcin/Projects/EduKotlinAcademy/web/build/node_modules_imported/kotlinx-html-js”中的“kotlin”

我在 kotlin 前端 Gradle 插件上启动了 Kotlin/JS 反应库。我有以下错误:

看起来在 kotlinx-html-js 上找不到对 Kotlin 的依赖。虽然我定义了 Kotlin,但它应该可以很好地生成。

对于此配置: