I trying to export Kotlin Enum classes to JS
@OptIn(ExperimentalJsExport::class)
@JsExport
enum class interEnum {
SAMPLE
}
But in Angular Project, after importing as NPM module, the respective TS block in module_name.d.ts
throws error during compilation when trying to run.
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"
]
}
}
Error from ng serve:
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 }
What are these errors ? Since I am new to JS and TS, I can't understand this. The editor not showing any errors.
If I remove the get
keywords, then it's compiling successfully.
I can't understand what's wrong here. Please help me
According to the official documentation for 1.7, it is prohibited to export enum classes.
This link provides some useful tips for exposing enums to TypeScript.