---
title: March 2024
---

:::caution
This release contains breaking changes and deprecations
:::

## Breaking Changes

### `@typespec/compiler`

- [#2920](https://github.com/microsoft/typespec/pull/2920) Intersecting `Record<T>` with incompatible properties will now emit an error

### `@typespec/prettier-plugin-typespec`

- [#2956](https://github.com/microsoft/typespec/pull/2956) Drop support for prettier 2.0

## Deprecations

### `@typespec/compiler`

- [#2919](https://github.com/microsoft/typespec/pull/2919) [API] Create a new export `@typespec/compiler/utils` exports. Deprecate export from `@typespec/compiler` of utils like `DuplicateTracker`, `Queue`, `createTwoKeyMap`, etc.
- [#2902](https://github.com/microsoft/typespec/pull/2902) Deprecate `@service` version property. If wanting to describe a service versioning you can use the `@typespec/versioning` library. If wanting to describe the project version you can use the package.json version. For OpenAPI generation. the `@OpenAPI.info` nows decorator allows providing the document version.

## Features

### `@typespec/compiler`

- [#2888](https://github.com/microsoft/typespec/pull/2888) Add support for codefixes
- [#2920](https://github.com/microsoft/typespec/pull/2920) Add support for `...Record<T>` to define the type of remaining properties
- [#2968](https://github.com/microsoft/typespec/pull/2968) Any subtype of an error(marked with `@error`) is now an error.

### `@typespec/http`

- [#2901](https://github.com/microsoft/typespec/pull/2901) Add ability to specify authentication and different scopes per operation
- [#2958](https://github.com/microsoft/typespec/pull/2958) Validate that only one `@useAuth` decorator is applied to a type.

### `@typespec/openapi`

- [#2902](https://github.com/microsoft/typespec/pull/2902) Add support for all properties of openapi `info` object on the `@info` decorator

### `@typespec/openapi3`

- [#2902](https://github.com/microsoft/typespec/pull/2902) Add support for all properties of openapi `info` object on the `@info` decorator
- [#2950](https://github.com/microsoft/typespec/pull/2950) Add `getOpenAPI3` function that takes a TypeSpec program and returns the emitted OpenAPI as an object. Useful for other emitters and tools that want to work with emitted OpenAPI directly without writing it to disk.
- [#2933](https://github.com/microsoft/typespec/pull/2933) Add a new option `safeint-strategy` that can be set to `double-int` to emit `type: integer, format: double-int` instead of `type: integer, format: int64` when using the `safeint` scalar.

### `@typespec/playground`

- [#2936](https://github.com/microsoft/typespec/pull/2936) Autocomplete installed libraries in `import` statements

## Bug Fixes

### `@typespec/compiler`

- [#2932](https://github.com/microsoft/typespec/pull/2932) Report error when having a circular template constraint e.g. `model Example<T extends T>`
- [#2955](https://github.com/microsoft/typespec/pull/2955) [Formatter] Formatting file with only comments would reorder the first line.
- [#2934](https://github.com/microsoft/typespec/pull/2934) [IDE] Fix issue when deleting an open file outside the IDE that would crash the language server
- [#2959](https://github.com/microsoft/typespec/pull/2959) Decorators that have missing arguments will not run. This is inline with passing invalid argument to a decorator that would prevent it from running.
- [#2976](https://github.com/microsoft/typespec/pull/2976) [IDE] Fix type documentation shown twice when hovering symbols or in completion details.
- [#2929](https://github.com/microsoft/typespec/pull/2929) [API] Add `Scalar` to TS `TemplatedType` type
- [#2978](https://github.com/microsoft/typespec/pull/2978) [IDE] Go to imports
- [#2936](https://github.com/microsoft/typespec/pull/2936) [IDE] Autocompleting file or folder with non alpha numeric character completes correctly
- [#2936](https://github.com/microsoft/typespec/pull/2936) [IDE] Fix crashing when trying to autocomplete an invalid folder
- [#2951](https://github.com/microsoft/typespec/pull/2951) Wrap string in quotes in errors
- [#2886](https://github.com/microsoft/typespec/pull/2886) Fix: `tsp compile --watch` was missing coloring and error previews

### `@typespec/http`

- [#2948](https://github.com/microsoft/typespec/pull/2948) Fix don't emit shared route error when verb don't match

### `@typespec/json-schema`

- [#2977](https://github.com/microsoft/typespec/pull/2977) Respect compiler `noEmit` flag
