Skip to content

v9.0.0

Compare
Choose a tag to compare
@NyxCode NyxCode released this 20 Jun 17:21
· 23 commits to main since this release

While v9.0.0 is a technically breaking change, we expect it to be a drop-in replacement for almost all users.
Only code interacting with TS::dependency_types and TS::generics will need to be adjusted.

What's new?

Removal of TypeList

The biggest change of v9.0.0 is an internal one: We removed TypeList from the API.
This fixes the long-standing issue of complex types failing to compile with

  • overflow evaluating the requirement or
  • reached the recursion limit

Even if you did not run into those, we do expect this change to also improve compilation times.

Allow for _ in #[ts(as = "..")]

Similar to how it works in serde, _ can be used in #[ts(as = "..")] to refer to the type of the field.
This is particularly useful for more complex type overrides.

Allow #[ts(as = "..")] and #[ts(type = "..")] on structs and enums

These two attributes can now be used directly on structs and enums.
Previously, it was necessary to add these attributes on every field where the type was used.
This feature is particularly useful for exposing newtypes transparently.

To see a list of all changes, check out CHANGELOG.md!

All changes

New Contributors

Full Changelog: v8.1.0...v9.0.0