Skip to content

[interop] Support typeof type declarations #417

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

Merged
merged 5 commits into from
Jul 21, 2025

Conversation

nikeokoronkwo
Copy link
Collaborator

Fixes #383

This PR adds support for typeof types from TS into the Dart JS Interop Interface Generator, also supporting referencing the types from Functions, variables and typeable declarations.

Declarations with types referencing declarations inherit the type of the declaration, which may range from simply mapping the type name of the referenced type (for types like enums, classes, etc) to mapping the structure of the declaration for functions.

Much larger scope will be supported once qualified names are supported.

@nikeokoronkwo nikeokoronkwo requested a review from srujzs July 18, 2025 18:58
Copy link
Contributor

@srujzs srujzs left a comment

Choose a reason for hiding this comment

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

Thanks! Just one final comment about the declarationOnly addition.

@nikeokoronkwo nikeokoronkwo requested a review from srujzs July 18, 2025 19:18
Copy link
Contributor

@srujzs srujzs left a comment

Choose a reason for hiding this comment

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

Thanks for the documentation, LGTM!

@kevmoo
Copy link
Member

kevmoo commented Jul 21, 2025

@srujzs – gunna merge?

@srujzs srujzs merged commit 1f80532 into dart-lang:main Jul 21, 2025
16 checks passed
@nikeokoronkwo nikeokoronkwo deleted the interop/typeof branch July 21, 2025 20:20
copybara-service bot pushed a commit to dart-lang/sdk that referenced this pull request Jul 22, 2025
Revisions updated by `dart tools/rev_sdk_deps.dart`.

ai (https://github.com/dart-lang/ai/compare/61ba1ea..40607dc):
  40607dc  2025-07-21  Jacob MacDonald  rename ElicitationHandler.reject to ElicitationHandler.decline (dart-lang/ai#240)
  ec6efa4  2025-07-21  Kostia Sokolovskyi  Fix ping request handling from non-dart clients. (dart-lang/ai#239)
  00889b4  2025-07-17  Jacob MacDonald  release dart_mcp version 0.3.2 (dart-lang/ai#237)
  5e93ef4  2025-07-17  Jacob MacDonald  Deprecate EnumSchema and JsonType.enumeration (dart-lang/ai#236)
  66af21b  2025-07-17  Jacob MacDonald  fix the firstMatchOnly and matchRoot schemas to be booleans (dart-lang/ai#235)
  141fbe1  2025-07-17  Jacob MacDonald  release dart_mcp 0.3.1 (dart-lang/ai#234)
  ce519e8  2025-07-17  Jacob MacDonald  Add flutter driver tool (dart-lang/ai#223)
  3bf650e  2025-07-16  Jacob MacDonald  add completions support to the prompts example (dart-lang/ai#233)
  aed93b4  2025-07-16  Jacob MacDonald  Deprecate the WithElicitationhandler interface (dart-lang/ai#231)
  01cf3d4  2025-07-16  Jacob MacDonald  Require dart_mcp version 0.3.1 (dart-lang/ai#232)
  5c28640  2025-07-16  Jacob MacDonald  add a sampling example (dart-lang/ai#230)
  df0c4f1  2025-07-16  Jacob MacDonald  add elicitation example, fix some issues with the elicitation APIs (dart-lang/ai#229)

http (https://github.com/dart-lang/http/compare/2d9681d..4a90d16):
  4a90d16  2025-07-21  Alex Li  [cronet_http] Update Cronet dependencies version (dart-lang/http#1796)
  5c06c6c  2025-07-18  Brian Quinlan  Prepare to release cronet 1.4.0 (dart-lang/http#1794)
  8c49ef5  2025-07-18  Hossein Yousefi  [cronet_http] Upgrade jni and jnigen to 0.14.2 (dart-lang/http#1793)
  ca07b4c  2025-07-17  Brian Quinlan  Add request cancellation to cupertino_http (dart-lang/http#1779)
  984cc43  2025-07-15  Brian Quinlan  Fix a bug where ConnectionException.toString didn't stringify NSError (dart-lang/http#1785)

protobuf (https://github.com/dart-lang/protobuf/compare/04bd6ac..4916e6f):
  4916e6f  2025-07-21  Ömer Sinan Ağacan  CI: Test PRs and commits to all branches, instead of just master (google/protobuf.dart#1029)
  a9822d8  2025-07-16  Devon Carew  prep for publishing protobuf 4.1.1, protoc_plugin 22.5.0 (google/protobuf.dart#1025)
  38f1549  2025-07-15  Devon Carew  update the generator to emit formatted files (google/protobuf.dart#1020)

test (https://github.com/dart-lang/test/compare/2be5ca0..c201cc9):
  c201cc98  2025-07-21  Nate Bosch  Expand Analyzer constraints to allow 8.x (dart-lang/test#2518)

tools (https://github.com/dart-lang/tools/compare/a4335eb..2a2a2d6):
  2a2a2d61  2025-07-17  Nikechukwu  [code_builder] Set `external` and `static` in correct order (dart-lang/tools#2120)

web (https://github.com/dart-lang/web/compare/7e0853d..767151e):
  767151e  2025-07-21  Nikechukwu  [web_generator] Bug Fixes in Entrypoint `gen_interop_bindings.dart` (dart-lang/web#423)
  1f80532  2025-07-21  Nikechukwu  [interop] Support `typeof` type declarations (dart-lang/web#417)
  affce52  2025-07-17  Kevin Moore  generator: drop build bits. Not used. (dart-lang/web#419)
  0a16c09  2025-07-17  Nikechukwu  [interop] Support Classes and Interfaces (dart-lang/web#415)

Change-Id: I9fbe6d7c15d63b19e45829628e7c5dfb3e87ca6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/441820
Auto-Submit: Devon Carew <[email protected]>
Reviewed-by: Konstantin Shcheglov <[email protected]>
Commit-Queue: Konstantin Shcheglov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Interop Gen: Support typeof type declarations
3 participants