diff --git a/.chronus/changes/copilot-update-jsdoc-versioning-decorators-2026-1-5-20-9-3.md b/.chronus/changes/copilot-update-jsdoc-versioning-decorators-2026-1-5-20-9-3.md
new file mode 100644
index 00000000000..5ffc8486ff8
--- /dev/null
+++ b/.chronus/changes/copilot-update-jsdoc-versioning-decorators-2026-1-5-20-9-3.md
@@ -0,0 +1,7 @@
+---
+changeKind: internal
+packages:
+ - "@typespec/versioning"
+---
+
+Improve JSDoc documentation for @typeChangedFrom and @returnTypeChangedFrom decorators
\ No newline at end of file
diff --git a/packages/versioning/README.md b/packages/versioning/README.md
index 2f1bdad5203..1b8adf74f7e 100644
--- a/packages/versioning/README.md
+++ b/packages/versioning/README.md
@@ -214,7 +214,12 @@ op newName(): void;
#### `@returnTypeChangedFrom`
-Identifies when the target type changed.
+Declares that the return type of an operation has changed starting at a given version,
+while keeping earlier versions consistent with the previous return type.
+
+This decorator is used to track return type changes across API versions. When applied,
+the operation will return `oldType` in versions before the specified `version`,
+and the current return type definition in the specified version and later.
```typespec
@TypeSpec.Versioning.returnTypeChangedFrom(version: EnumMember, oldType: unknown)
@@ -226,14 +231,28 @@ Identifies when the target type changed.
##### Parameters
-| Name | Type | Description |
-| ------- | ------------ | -------------------------------------------- |
-| version | `EnumMember` | The version that the target type changed in. |
-| oldType | `unknown` | The previous type of the target. |
+| Name | Type | Description |
+| ------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| version | `EnumMember` | The version when the return type change takes effect. The new return type applies
from this version onwards, while the old return type applies to earlier versions. |
+| oldType | `unknown` | The previous return type used before the specified version. |
+
+##### Examples
+
+```tsp
+// In v1: returns a string
+// In v2+: returns an int32
+@returnTypeChangedFrom(Versions.v2, string)
+op getUserId(): int32;
+```
#### `@typeChangedFrom`
-Identifies when the target type changed.
+Declares that the type of a model property has changed starting at a given version,
+while keeping earlier versions consistent with the previous type.
+
+This decorator is used to track type changes across API versions. When applied,
+the property will use `oldType` in versions before the specified `version`,
+and the current type definition in the specified version and later.
```typespec
@TypeSpec.Versioning.typeChangedFrom(version: EnumMember, oldType: unknown)
@@ -245,10 +264,21 @@ Identifies when the target type changed.
##### Parameters
-| Name | Type | Description |
-| ------- | ------------ | -------------------------------------------- |
-| version | `EnumMember` | The version that the target type changed in. |
-| oldType | `unknown` | The previous type of the target. |
+| Name | Type | Description |
+| ------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| version | `EnumMember` | The version when the type change takes effect. The new type applies
from this version onwards, while the old type applies to earlier versions. |
+| oldType | `unknown` | The previous type used before the specified version. |
+
+##### Examples
+
+```tsp
+model Foo {
+ // In v1: id is a string
+ // In v2+: id is an int32
+ @typeChangedFrom(Versions.v2, string)
+ id: int32;
+}
+```
#### `@useDependency`
diff --git a/packages/versioning/generated-defs/TypeSpec.Versioning.ts b/packages/versioning/generated-defs/TypeSpec.Versioning.ts
index 8e8668c1c45..b52ff9d3df0 100644
--- a/packages/versioning/generated-defs/TypeSpec.Versioning.ts
+++ b/packages/versioning/generated-defs/TypeSpec.Versioning.ts
@@ -202,10 +202,25 @@ export type MadeRequiredDecorator = (
) => DecoratorValidatorCallbacks | void;
/**
- * Identifies when the target type changed.
+ * Declares that the type of a model property has changed starting at a given version,
+ * while keeping earlier versions consistent with the previous type.
*
- * @param version The version that the target type changed in.
- * @param oldType The previous type of the target.
+ * This decorator is used to track type changes across API versions. When applied,
+ * the property will use `oldType` in versions before the specified `version`,
+ * and the current type definition in the specified version and later.
+ *
+ * @param version The version when the type change takes effect. The new type applies
+ * from this version onwards, while the old type applies to earlier versions.
+ * @param oldType The previous type used before the specified version.
+ * @example
+ * ```tsp
+ * model Foo {
+ * // In v1: id is a string
+ * // In v2+: id is an int32
+ * @typeChangedFrom(Versions.v2, string)
+ * id: int32;
+ * }
+ * ```
*/
export type TypeChangedFromDecorator = (
context: DecoratorContext,
@@ -215,10 +230,23 @@ export type TypeChangedFromDecorator = (
) => DecoratorValidatorCallbacks | void;
/**
- * Identifies when the target type changed.
+ * Declares that the return type of an operation has changed starting at a given version,
+ * while keeping earlier versions consistent with the previous return type.
+ *
+ * This decorator is used to track return type changes across API versions. When applied,
+ * the operation will return `oldType` in versions before the specified `version`,
+ * and the current return type definition in the specified version and later.
*
- * @param version The version that the target type changed in.
- * @param oldType The previous type of the target.
+ * @param version The version when the return type change takes effect. The new return type applies
+ * from this version onwards, while the old return type applies to earlier versions.
+ * @param oldType The previous return type used before the specified version.
+ * @example
+ * ```tsp
+ * // In v1: returns a string
+ * // In v2+: returns an int32
+ * @returnTypeChangedFrom(Versions.v2, string)
+ * op getUserId(): int32;
+ * ```
*/
export type ReturnTypeChangedFromDecorator = (
context: DecoratorContext,
diff --git a/packages/versioning/lib/decorators.tsp b/packages/versioning/lib/decorators.tsp
index fe423e85391..8422f3327ea 100644
--- a/packages/versioning/lib/decorators.tsp
+++ b/packages/versioning/lib/decorators.tsp
@@ -178,15 +178,49 @@ extern dec madeOptional(target: ModelProperty, version: EnumMember);
extern dec madeRequired(target: ModelProperty, version: EnumMember);
/**
- * Identifies when the target type changed.
- * @param version The version that the target type changed in.
- * @param oldType The previous type of the target.
+ * Declares that the type of a model property has changed starting at a given version,
+ * while keeping earlier versions consistent with the previous type.
+ *
+ * This decorator is used to track type changes across API versions. When applied,
+ * the property will use `oldType` in versions before the specified `version`,
+ * and the current type definition in the specified version and later.
+ *
+ * @param version The version when the type change takes effect. The new type applies
+ * from this version onwards, while the old type applies to earlier versions.
+ * @param oldType The previous type used before the specified version.
+ *
+ * @example
+ *
+ * ```tsp
+ * model Foo {
+ * // In v1: id is a string
+ * // In v2+: id is an int32
+ * @typeChangedFrom(Versions.v2, string)
+ * id: int32;
+ * }
+ * ```
*/
extern dec typeChangedFrom(target: ModelProperty, version: EnumMember, oldType: unknown);
/**
- * Identifies when the target type changed.
- * @param version The version that the target type changed in.
- * @param oldType The previous type of the target.
+ * Declares that the return type of an operation has changed starting at a given version,
+ * while keeping earlier versions consistent with the previous return type.
+ *
+ * This decorator is used to track return type changes across API versions. When applied,
+ * the operation will return `oldType` in versions before the specified `version`,
+ * and the current return type definition in the specified version and later.
+ *
+ * @param version The version when the return type change takes effect. The new return type applies
+ * from this version onwards, while the old return type applies to earlier versions.
+ * @param oldType The previous return type used before the specified version.
+ *
+ * @example
+ *
+ * ```tsp
+ * // In v1: returns a string
+ * // In v2+: returns an int32
+ * @returnTypeChangedFrom(Versions.v2, string)
+ * op getUserId(): int32;
+ * ```
*/
extern dec returnTypeChangedFrom(target: Operation, version: EnumMember, oldType: unknown);
diff --git a/website/src/content/docs/docs/libraries/versioning/reference/decorators.md b/website/src/content/docs/docs/libraries/versioning/reference/decorators.md
index fd2cd1d88c9..e8baec6aa57 100644
--- a/website/src/content/docs/docs/libraries/versioning/reference/decorators.md
+++ b/website/src/content/docs/docs/libraries/versioning/reference/decorators.md
@@ -164,7 +164,12 @@ op newName(): void;
### `@returnTypeChangedFrom` {#@TypeSpec.Versioning.returnTypeChangedFrom}
-Identifies when the target type changed.
+Declares that the return type of an operation has changed starting at a given version,
+while keeping earlier versions consistent with the previous return type.
+
+This decorator is used to track return type changes across API versions. When applied,
+the operation will return `oldType` in versions before the specified `version`,
+and the current return type definition in the specified version and later.
```typespec
@TypeSpec.Versioning.returnTypeChangedFrom(version: EnumMember, oldType: unknown)
@@ -176,14 +181,28 @@ Identifies when the target type changed.
#### Parameters
-| Name | Type | Description |
-| ------- | ------------ | -------------------------------------------- |
-| version | `EnumMember` | The version that the target type changed in. |
-| oldType | `unknown` | The previous type of the target. |
+| Name | Type | Description |
+| ------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| version | `EnumMember` | The version when the return type change takes effect. The new return type applies
from this version onwards, while the old return type applies to earlier versions. |
+| oldType | `unknown` | The previous return type used before the specified version. |
+
+#### Examples
+
+```tsp
+// In v1: returns a string
+// In v2+: returns an int32
+@returnTypeChangedFrom(Versions.v2, string)
+op getUserId(): int32;
+```
### `@typeChangedFrom` {#@TypeSpec.Versioning.typeChangedFrom}
-Identifies when the target type changed.
+Declares that the type of a model property has changed starting at a given version,
+while keeping earlier versions consistent with the previous type.
+
+This decorator is used to track type changes across API versions. When applied,
+the property will use `oldType` in versions before the specified `version`,
+and the current type definition in the specified version and later.
```typespec
@TypeSpec.Versioning.typeChangedFrom(version: EnumMember, oldType: unknown)
@@ -195,10 +214,21 @@ Identifies when the target type changed.
#### Parameters
-| Name | Type | Description |
-| ------- | ------------ | -------------------------------------------- |
-| version | `EnumMember` | The version that the target type changed in. |
-| oldType | `unknown` | The previous type of the target. |
+| Name | Type | Description |
+| ------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| version | `EnumMember` | The version when the type change takes effect. The new type applies
from this version onwards, while the old type applies to earlier versions. |
+| oldType | `unknown` | The previous type used before the specified version. |
+
+#### Examples
+
+```tsp
+model Foo {
+ // In v1: id is a string
+ // In v2+: id is an int32
+ @typeChangedFrom(Versions.v2, string)
+ id: int32;
+}
+```
### `@useDependency` {#@TypeSpec.Versioning.useDependency}