問題タブ [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 に答える
1530 参照

kotlin - kotlin js でリソース ファイル (json) を読み込む

このコードを考えると、ランタイムで見つけられるように file.json をどこに配置する必要がありますか?

運が悪かったので、src/main/resources/ の下に配置しようとしました。また、Gradle を使用して、プラグインを使用して kotlin を js にコンパイルしkotlin2jsます。

0 投票する
3 に答える
601 参照

kotlin - Kotlin/JS 外部宣言 - 「JavaScript 識別子に表示できない不正な文字が名前に含まれています」

編集: これはまだサポートされておらず、Kotlin YouTrack で追跡されています


次の Typescript インターフェイスに一致する Kotlinexternal宣言を記述しようとしています (これは、 を介した JavaScript アクセスを表す有効な TS ですheaders['content-length'])。

Dukat は以下を生成しますが、これは有効と見なされます。

しかし今、コンパイラは次のように文句を言います:

Name contains illegal chars that can't appear in JavaScript identifier

JS 識別子に表示できないのは事実ですが、そうする必要はありません。このプロパティへのすべての Kotlin アクセスは次のようになります。

にコンパイルされた場合に有効になる可能性がありますconst length = headers["content-length"]

@JsName次の方法で回避するために使用しようとしました。

  • @JsName("content-length")
  • @JsName("'content-length'")
  • @JsName("\"content-length\"")

しかし、有効な JS 識別子である文字列のみを許可するため、これらはすべて失敗します。これを回避する方法はありますか?