-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Labels
ts-interface-generatorRelated to the ts-interface-generator sub-packageRelated to the ts-interface-generator sub-package
Description
Describe the bug
Running npx @ui5/ts-interface-generator
command in project containing mixins causing following error:
AppData\Local\npm-cache\_npx\a388873ad1487e68\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:172
throw new Error(`Type '${typeNode.getText()}' referenced in ${sourceFile.fileName} in the inheritance clause '${heritageClause.getFullText()}' could not be resolved.
^
Error: Type 'ClassA(ClassB)' referenced in ClassC.ts in the inheritance clause ' extends ClassA(ClassB)' could not be resolved.
Check the respective line in the source code: ts there an error for this type? Make sure the type is properly imported.
If a working "import" is not possible and it is a UI5 type (or type from another library), the issue could be caused by the respective type definitions not being available. They must be found by the TypeScript compiler according to the configuration in tsconfig. To verify this step-by-step, you can do the following:
1. Check whether the (UI5 or other) types are added as dependency in package.json (or available as transitive dependency)
2. Check inside which "node_modules" folder the types are actually available - if they are not, check whether "npm install" (or "yarn" etc.) has run successfully - maybe re-run it
3. Check the "tsconfig.json" file: types outside the default "@types" package must be explicitly added in the "types" or "typeRoots" section. Is the name and path correct?
One known cause of this error is that the "typeRoots" setting in tsconfig.json has wrong paths, which are not actually pointing to the correct location of the type definitions.
Or is there a different reason why this type would not be known?
at AppData\Local\npm-cache\_npx\a388873ad1487e68\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:172:39
at Array.forEach (<anonymous>)
at AppData\Local\npm-cache\_npx\a388873ad1487e68\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:168:46
at Array.forEach (<anonymous>)
at AppData\Local\npm-cache\_npx\a388873ad1487e68\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:166:43
This happens whenever project contains file with mixin akin to:
export default class ClassC extends ClassA(ClassB) {
// ...
}
Current workaround is to have separate tsconfig-generate-ts-interfaces.json
file which excludes files containin mixin, and pass this file to --config
parameter of interface generator.
Expected behavior
Successful type generation for project containing mixins.
Additional context
Reproduced in @ui5/ts-interface-generator@0.9.0
Metadata
Metadata
Assignees
Labels
ts-interface-generatorRelated to the ts-interface-generator sub-packageRelated to the ts-interface-generator sub-package