-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ts-interface-generator: crash when parent class is also custom and has no constructors added yet #346
Comments
Hi, i have a similar error: C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:97
throw new Error(`${statement.name ? statement.name.text : ""} inherits from ${interestingBaseClass} but the parent class ${typeChecker.getFullyQualifiedName(type.getSymbol())} seems to have no settings type`);
^
Error: App inherits from EventProvider but the parent class "sap/ui/core/mvc/Controller".Controller seems to have no settings type
at C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:97:39
at Array.forEach (<anonymous>)
at C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:69:46
at Array.forEach (<anonymous>)
at C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:67:43
at Array.forEach (<anonymous>)
at getManagedObjects (C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:63:27)
at generateInterfaces (C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\interfaceGenerationHelper.js:39:17)
at C:\Users\heess_k\Documents\TypeScript Projects\ui5-typescript-helloworld\node_modules\@ui5\ts-interface-generator\dist\generateTSInterfaces.js:133:60
at Array.forEach (<anonymous>)
The terminal process "C:\WINDOWS\System32\cmd.exe /d /c npm run watch:controls" terminated with exit code: 1. I used the demo project in the custom-controls branch: |
To generate constructor signatures, a settings type needs to be created which inherits from the parent class' settings type and adds the properties, aggregations etc. of the current class. This rightly leads to an error. But this should not lead to an error when the class does not add any API items at all. related to #346
@Revest117: thanks for reporting! This particular issue where the settings type is missing but actually not needed at all is now fixed in the newly released version 0.4.2. The overall issue when e.g. two custom controls inherit from each other and are added at the same time is still open, so I'll keep this issue report open. |
With #474 being merged now the behavior will probably improve or at least change. With no constructor in the direct parent class, it will walk up further the class hierarchy. A crash should be prevented, but initially a wrong settings type may be used. I think this will be corrected after further runs of the generator. The "real" solution would be to first collect inheritance information to construct the proper interface generation order, but if this behaves benign, as assumed above, the importance of implementing this is reduced a bit. |
Reported in #337
The text was updated successfully, but these errors were encountered: