Breaking Changes
- Validate state tree instances instead of snapshots in the
SnapshotProcessor.is
override by @airhorns in #2182 - Fix typings for snapshot processor by @thegedge in #2198
- Improve typing of the union dispatcher function by @thegedge in #2203
- Ensure actions/volatile state also throw when overriding props. by @thegedge in #2207
- Fix tsconfig and typechecking by @thegedge in #2200
Features
Fixes
Tests
Migration
TypeScript
Most of the breaking changes in this release have to do with changes in TypeScript. So you may find that you have to make adjustments to how you're typing your models, although we hope most of these changes improve your TypeScript experience overall.
Validating Tree Instances instead of Snapshots
Introduced in #2182, when comparing for equality on whether a model .is
something, we now look at the actual instance, rather than the snapshot itself. In the past, if you were expecting snapshot processors to make two different sides of an .is
operation inequal, you may need to find a new way to emulate that behavior, or otherwise change your logic. We are going to take a stronger, more defined stance for when .is
should evaluate to true
.
This is a somewhat advanced use case, and most users should not have to make any changes.
New Error Behavior when Overriding Props
Introduced in #2207, we will now throw errors when actions and volatile state override prop names. This probably would have been a bug in your application code before, but MST will now explicitly throw when it detects this pattern. You can migrate by choosing distinct names for props, volatile state, and actions.
Full Changelog: v6.0.1...v7.0.0