Decorators
TypeSpec.Versioning
Section titled âTypeSpec.VersioningâIdentifies when the target was added.
@TypeSpec.Versioning.added(version: EnumMember)Model | ModelProperty | Operation | Enum | EnumMember | Union | UnionVariant | Scalar | Interface
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target was added in. | 
Examples
Section titled âExamplesâ@added(Versions.v2)op addedInV2(): void;
@added(Versions.v2)model AlsoAddedInV2 {}
model Foo {  name: string;
  @added(Versions.v3)  addedInV3: string;}@madeOptional
Section titled â@madeOptionalâIdentifies when a target was made optional.
@TypeSpec.Versioning.madeOptional(version: EnumMember)ModelProperty
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target was made optional in. | 
Examples
Section titled âExamplesâmodel Foo {  name: string;
  @madeOptional(Versions.v2)  nickname?: string;}@madeRequired
Section titled â@madeRequiredâIdentifies when a target was made required.
@TypeSpec.Versioning.madeRequired(version: EnumMember)ModelProperty
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target was made required in. | 
Examples
Section titled âExamplesâmodel Foo {  name: string;
  @madeRequired(Versions.v2)  nickname: string;}@removed
Section titled â@removedâIdentifies when the target was removed.
@TypeSpec.Versioning.removed(version: EnumMember)Model | ModelProperty | Operation | Enum | EnumMember | Union | UnionVariant | Scalar | Interface
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target was removed in. | 
Examples
Section titled âExamplesâ@removed(Versions.v2)op removedInV2(): void;
@removed(Versions.v2)model AlsoRemovedInV2 {}
model Foo {  name: string;
  @removed(Versions.v3)  removedInV3: string;}@renamedFrom
Section titled â@renamedFromâIdentifies when the target has been renamed.
@TypeSpec.Versioning.renamedFrom(version: EnumMember, oldName: valueof string)Model | ModelProperty | Operation | Enum | EnumMember | Union | UnionVariant | Scalar | Interface
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target was renamed in. | 
| oldName | valueof string | The previous name of the target. | 
Examples
Section titled âExamplesâ@renamedFrom(Versions.v2, "oldName")op newName(): void;@returnTypeChangedFrom
Section titled â@returnTypeChangedFromâIdentifies when the target type changed.
@TypeSpec.Versioning.returnTypeChangedFrom(version: EnumMember, oldType: unknown)Operation
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target type changed in. | 
| oldType | unknown | The previous type of the target. | 
@typeChangedFrom
Section titled â@typeChangedFromâIdentifies when the target type changed.
@TypeSpec.Versioning.typeChangedFrom(version: EnumMember, oldType: unknown)ModelProperty
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| version | EnumMember | The version that the target type changed in. | 
| oldType | unknown | The previous type of the target. | 
@useDependency
Section titled â@useDependencyâIdentifies that a namespace or a given versioning enum member relies upon a versioned package.
@TypeSpec.Versioning.useDependency(...versionRecords: EnumMember[])EnumMember | Namespace
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| versionRecords | EnumMember[] | The dependent library version(s) for the target namespace or version. | 
Examples
Section titled âExamplesâSelect a single version of MyLib to use
Section titled âSelect a single version of MyLib to useâ@useDependency(MyLib.Versions.v1_1)namespace NonVersionedService;Select which version of the library match to which version of the service.
Section titled âSelect which version of the library match to which version of the service.â@versioned(Versions)namespace MyService1;enum Version {  @useDependency(MyLib.Versions.v1_1) // V1 use lib v1_1  v1,  @useDependency(MyLib.Versions.v1_1) // V2 use lib v1_1  v2,  @useDependency(MyLib.Versions.v2) // V3 use lib v2  v3,}@versioned
Section titled â@versionedâIdentifies that the decorated namespace is versioned by the provided enum.
@TypeSpec.Versioning.versioned(versions: Enum)Namespace
Parameters
Section titled âParametersâ| Name | Type | Description | 
|---|---|---|
| versions | Enum | The enum that describes the supported versions. | 
Examples
Section titled âExamplesâ@versioned(Versions)namespace MyService;enum Versions {  v1,  v2,  v3,}