Share via


JavaScript and TypeScript support in Visual Studio for Mac

Important

Visual Studio for Mac was retired on August 31, 2024 in accordance with Microsoft’s Modern Lifecycle Policy. While you can continue to work with Visual Studio for Mac, there are several other options for developers on Mac such as the preview version of the new C# Dev Kit extension for VS Code.

Learn more about support timelines and alternatives.

Visual Studio for Mac provides support for JavaScript and TypeScript through syntax highlighting, code formatting, and IntelliSense.

typescript editor support

For more information on writing JavaScript, see to the Writing JavaScript Code guides.

Adding a JavaScript file

JavaScript files are most often added to ASP.NET Core projects through the New File dialog. To add a javascript file, right-click on your project and go to Add > New File:

adding new files to the project

From the New File dialog, select Web > Empty JS file or Web > TypeScript file. Give it a name and then choose New:

creating a new typescript file from the template

IntelliSense

Visual Studio for Mac uses the JavaScript Language Service to provide IntelliSense, allowing you to have intelligent code completion, parameter info, and member lists when writing code.

JavaScript IntelliSense in Visual Studio for Mac can be based on type inference, JSDoc, or TypeScript declarations.

  • Type inference – The type of an object is figured out by the surrounding code context. For more information, see Visual Studio's section on IntelliSense based on type inference.

  • JSDoc – There are times when type inference doesn't provide the correct type information. In these cases, the type information can be provided explicitly by JSDoc annotations. For more information, see Visual Studio's section on IntelliSense based on JSDoc

  • TypeScript declaration files.d.ts files are used to provide values for JavaScript IntelliSense. Types declared in that file can be used as types on JSDoc comments. For more information, see Visual Studio's section on IntelliSense based on TypeScript declaration files

    adding a typescript definition file

See also