我試圖將 Kotlin Enum 類匯出到 JS
@OptIn(ExperimentalJsExport::class)
@JsExport
enum class interEnum {
SAMPLE
}
但是在 Angular Project 中,作為 NPM 模塊匯入后,module_name.d.ts 在嘗試運行時,相應的 TS 塊在編譯期間會拋出錯誤。
abstract class interEnum { // exported from Kotlin/JS
private constructor();
static get SAMPLE(): com.example.demoapp.interEnum & {
get name(): "SAMPLE";
get ordinal(): 0;
};
static values(): Array<com.example.demoapp.interEnum>;
static valueOf(value: string): com.example.demoapp.interEnum;
get name(): "SAMPLE";
get ordinal(): 0;
}
tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"module": "es2020",
"lib": [
"es2018",
"dom"
]
}
}
來自 ng 服務的錯??誤:
ERROR in demo_app/demo_app.d.ts:286:13 - error TS1131: Property or signature expected.
286 get name(): "SAMPLE";
~~~
demo_app/demo_app.d.ts:289:9 - error TS1128: Declaration or statement expected.
289 static values(): Array<com.example.demoapp.interEnum>;
~~~~~~
demo_app/demo_app.d.ts:289:24 - error TS1005: ';' expected.
289 static values(): Array<com.example.demoapp.interEnum>;
~
demo_app/demo_app.d.ts:289:62 - error TS1005: '(' expected.
289 static values(): Array<com.example.demoapp.interEnum>;
~
demo_app/demo_app.d.ts:290:9 - error TS1128: Declaration or statement expected.
290 static valueOf(value: string): com.example.demoapp.interEnum;
~~~~~~
demo_app/demo_app.d.ts:290:29 - error TS1005: ',' expected.
290 static valueOf(value: string): com.example.demoapp.interEnum;
~
demo_app/demo_app.d.ts:290:38 - error TS1005: ';' expected.
290 static valueOf(value: string): com.example.demoapp.interEnum;
~
demo_app/demo_app.d.ts:291:13 - error TS1005: ';' expected.
291 get name(): "SAMPLE";
~~~~
demo_app/demo_app.d.ts:291:19 - error TS1005: ';' expected.
291 get name(): "SAMPLE";
~
demo_app/demo_app.d.ts:292:13 - error TS1005: ';' expected.
292 get ordinal(): 0;
~~~~~~~
demo_app/demo_app.d.ts:292:22 - error TS1005: ';' expected.
292 get ordinal(): 0;
~
demo_app/demo_app.d.ts:294:1 - error TS1128: Declaration or statement expected.
294 }
這些錯誤是什么?由于我是 JS 和 TS 的新手,我無法理解這一點。編輯器沒有顯示任何錯誤。
如果我洗掉get關鍵字,那么它編譯成功。
我不明白這里有什么問題。請幫我
uj5u.com熱心網友回復:
根據1.7 的官方檔案,禁止匯出列舉類。
此鏈接提供了一些有用的提示,用于將列舉暴露給 TypeScript。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529188.html
標籤:javascript打字稿科特林kotlin-多平台kotlin-js
