Skip to content

January 2024

  • New Language Feature Added support for named template arguments. Typespec template arguments can now be instantiated both positionally and by name. See this issue for details.
    • All TypeSpec libraries normalized Template parameter names in anticipation of this change.
  • Renamed template parameters in preparation for named template argument instantiation.
  • Added new --template option to tsp init command line action which lets user specify which template to choose from in the template list.
  • Added a new init template for creating a new TypeSpec emitter.
  • Added a new init template for creating a new TypeSpec library.
  • New Language Feature Added the ability to use another template parameter as a constraint, e.g. model Foo<A, B extends A>.
  • Added @encodedName decorator and getEncodedName accessor.
  • Added support for bytes encode to the general encode type.
  • Library declaration: Enabled declaration of State symbols in the library declaration, providing a central place to define state symbols used in your libraries.
  • Added a new helper function to change casing to the init templates.
  • Support for the types entry under exports in package definitions (instead of the legacy typesVersions).
    • All TypeSpec libraries are now using this definition style.
  • Add a new cli for typespec-bundler.
  • Expose a bundle manifest with relative importmap, package name, and version.
  • Added support for @encodedName decorator.
  • Added a format button to the playground command bar.
  • Added a notification to the standalone playground when the playground has been saved.
  • Added resizable panes for the editor and output.
  • Added the ability to pass a custom footer and use Footer and FooterItem component to build your own.
  • Added the ability to configure the playground via createBrowserHost if library loading should use system importmap or the es-module-shim library with importmap-shim. This was added due to the lack of support for external source map in browsers.
  • Provided the ability to configure bundling local libraries with the playground or manage the importmap yourself with skipBundleLibraries option.
  • Moved errors and warnings to a dedicated expandable banner at the bottom of the playground.
  • Removed githubIssueUrl link and replaced with a onFileBug callback.
  • Allowed standalone playground to show a loading fallback.
  • Fix: Improved performance of the language server, impacting performance of syntax highlighting and other IDE features.
  • Fix: Enabled compiler file resolution for long path names (256+ characters) on windows.
  • Fix: Turned off warning when tsp init is used with a template that does not specify compilerVersion.
  • Fix: Ensured @path custom name is respected.
  • Fix: Allowed correct path generation when path parameter is not alpha numeric(Either with a different name provided in @path or if the property name is not an identifier)
  • Fix: Configured the program viewer to respect the color theme.
  • Fix: Provided css exports to styles.css in addition to style.css. Both are now available for backward compatibility but styles.css is the recommended name.
  • Fix: Corrected handling of custom @path name in the building of the route.
  • Library declaration: Deprecated linter property on $lib in favor of a new $linter variable that can be exported. This was done to discourage circular references caused by referencing linter rules in $lib.
  • TypeSpec dropped support for node version 16, as this version of node is no longer generally supported. Minimum node version is 18.
  • BREAKING CHANGE Styles must be imported seperately with import \"@typespec/playground/styles.css\";.