-
Notifications
You must be signed in to change notification settings - Fork 246
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
Optional any
is typed as a required any
.
#230
Comments
I found the bug's cause (compiler would not consider the |
Optional parameters and properties typed `any` would be represented as required, despite the code unambiguously suggests the opposite. This is due to the fact that `any` implicitly covers `null` and `undefined`. This change fixes this by adding a specific provision for the question mark token in the declarations of those, and adds compliance test coverage for the same. Fixes #230
Well the PR #237 includes code to make |
But what happens if there’s an “any” argument in the middle of a signature? Optional arguments are only allowed at the end. |
Well - |
* fix(jsii): Optional `any` represented as required Optional parameters and properties typed `any` would be represented as required, despite the code unambiguously suggests the opposite. This is due to the fact that `any` implicitly covers `null` and `undefined`. This change fixes this by adding a specific provision for the question mark token in the declarations of those, and adds compliance test coverage for the same. Fixes #230 * Mark all `any` types as `optional`.
Bug Fixes ====================== * Sphinx generated incorrect type references for display ([#232](#232)) ([b664805](b664805)) * **jsii:** Defaulted parameters were not rendered as optional ([#234](#234)) ([578bf9c](578bf9c)), closes [#233](#233) * **jsii:** Don't skip emit on TS errors when in "watch" mode ([#236](#236)) ([30d1491](30d1491)), closes [#235](#235) * **jsii:** Optional `any` represented as required ([#237](#237)) ([91074f3](91074f3)), closes [#230](#230) Features ====================== * **sphinx:** allow readme file to define sphinx header and reorganize topic ([#229](#229)) ([405da9c](405da9c)), closes [#228](#228) [#185](#185) * Document overriden/inherited members ([#238](#238)) ([7a6278a](7a6278a)), closes [#196](#196)
Yes, there is (somewhat) of a difference between |
That is in large parts because |
Originally reported here:
aws/aws-cdk#714
The issue is that the declaration was:
Which got translated into the following JSII:
I.e., the "optional" part of it got lost.
The text was updated successfully, but these errors were encountered: