Repository navigation
docs: clarify model copying and inheritance - #12331
Merged
Timothee Guerin (timotheeguerin) merged 1 commit intoOct 26, 2026
Merged
Timothee Guerin (timotheeguerin) merged 1 commit into
Timothee Guerin (timotheeguerin) merged 1 commit into
Conversation
Contributor
|
No changes needing a change description found. |
|
You can try these changes here
|
Timothee Guerin (timotheeguerin)
marked this pull request as ready for review
October 26, 2026 13:59
Timothee Guerin (timotheeguerin)
requested review from
catalinaperalta,
iscai-msft,
Laurent Mazuel (lmazuel) and
Mark Cowlishaw (markcowl)
as code owners
October 26, 2026 13:59
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The focused documentation changes match the reviewed compiler behavior and existing tests, with no unresolved issues.
No open issues 🎉
What changed in this PR
Clarifies model copying versus inheritance in the TypeSpec models guide, addressing the confusion raised in #8541 without changing compiler behavior.
Changes:
- Explains when to use
isversusextends, including record indexer constraints. - Documents how spread, inheritance, and copying handle properties and decorators.
- Updates the
isexample to show an added property and preserved model documentation.
| File | Description |
|---|---|
| website/src/content/docs/docs/language-basics/models.md | Clarifies model composition semantics and updates the copying example. |
Review effort: Balanced
iscai-msft
approved these changes
Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The models guide recommends
is Record<T>overextends Record<T>as though they were interchangeable, obscuring their inheritance and decorator behavior.Explain when to copy a model versus preserve an inheritance relationship, how model-level and property decorators are handled, and that both record forms enforce their indexer constraints. The
isexample now demonstrates adding a property while retaining the source model’s documentation.Fixes #8541