Skip to content

Conversation

@rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Sep 11, 2025

This adds support for intersection types to the jsii compiler.

There are a number of restrictions to the use of intersection types:

  • They can only appear in argument position, or in structs that are exclusively used as the input to functions.
    • Not as return values of functions
    • Not in structs that are returned by functions
    • Not as arguments to constructors
    • Not as property types
  • They must intersect only (behavioral) interface types.
    • Not structs
    • Not primitives
    • Not class types
  • All shared members of interfaces that are intersected must have the same types and arguments as each other.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

This adds support for intersection types to the jsii compiler. There are a number of restrictions to the use of intersection types: - They can only appear in argument position, or in structs that are exclusively used as the input to functions. - Not as return values of functions - Not in structs that are returned by functions - Not as arguments to constructors - Not as property types - They must intersect only (behavioral) interface types. - Not structs - Not primitives - Not class types - All shared members of interfaces that are intersected must have the same types and arguments as each other.
@rix0rrr rix0rrr requested a review from a team September 11, 2025 12:43
@mrgrain mrgrain marked this pull request as draft September 11, 2025 12:44
auto-merge was automatically disabled September 11, 2025 12:44

Pull request was converted to draft

Copy link
Contributor

@mrgrain mrgrain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some feedback

@rix0rrr rix0rrr marked this pull request as ready for review September 15, 2025 08:46
rix0rrr and others added 2 commits September 25, 2025 10:27
Signed-off-by: github-actions <github-actions@github.com>
@aws-cdk-automation aws-cdk-automation added this pull request to the merge queue Sep 25, 2025
Merged via the queue into main with commit 4ea0b82 Sep 25, 2025
80 checks passed
@aws-cdk-automation aws-cdk-automation deleted the huijbers/intersection-types branch September 25, 2025 08:43
mergify bot pushed a commit to aws/jsii that referenced this pull request Sep 29, 2025
Add support for intersection types to the rest of the jsii toolkit. This is currently using a prerelease version of the jsii compiler drafted here: aws/jsii-compiler#2325 --- By submitting this pull request, I confirm that my contribution is made under the terms of the [Apache 2.0 license]. [Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
aws-cdk-automation pushed a commit that referenced this pull request Oct 29, 2025
This adds support for intersection types to the jsii compiler. There are a number of restrictions to the use of intersection types: - They can only appear in argument position, or in structs that are exclusively used as the input to functions. - Not as return values of functions - Not in structs that are returned by functions - Not as arguments to constructors - Not as property types - They must intersect only (behavioral) interface types. - Not structs - Not primitives - Not class types - All shared members of interfaces that are intersected must have the same types and arguments as each other. --- By submitting this pull request, I confirm that my contribution is made under the terms of the [Apache 2.0 license]. [Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0 --------- Signed-off-by: github-actions <github-actions@github.com> Co-authored-by: github-actions <github-actions@github.com> (cherry picked from commit 4ea0b82) # Conflicts: #	package.json #	yarn.lock
@aws-cdk-automation
Copy link
Collaborator

💚 All backports created successfully

Status Branch Result
maintenance/v5.8

Questions ?

Please refer to the Backport tool documentation and see the Github Action logs for details

github-merge-queue bot pushed a commit that referenced this pull request Oct 29, 2025
# Backport This will backport the following commits from `main` to `maintenance/v5.8`: - [feat: intersection types (#2325)](#2325) <!--- Backport version: 9.5.1 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) --------- Co-authored-by: Rico Hermans <rix0rrr@gmail.com> Co-authored-by: Momo Kornher <kornherm@amazon.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment