ReSharper 2016.2 Help

Coding Assistance in TypeScript

Most of ReSharper's coding assistance features are also supported in TypeScript. You can find the detailed information on these features in the corresponding topics of the Coding Assistance section. In the main topic of the section, you can also find the feature matrix and check what exactly is supported in TypeScript.

In this topic, you can find some examples of using coding assistance features in TypeScript:

Syntax highlighting

ReSharper recognises *.ts and *.d.ts files, and highlights source code within such files according to the predefined colors. You can change colors and fonts at any time. For more information, see Configuring Fonts and Colors.

Code completion

As usual, you can use Code completion features to ease code writing. TypeScript is an object-oriented programming language, so we can define types and members. For example, ReSharper suggests members of the current instance after this keyword.

ReSharper_by_Language__TypeScript__Code_Completion_01

ReSharper also takes into account the right level of abstraction. Consider the example below. After a new instance of the Vector object is initialized, ReSharper displays all available members in the completion list.
ReSharper_by_Language__TypeScript__Code_Completion_02

The minus and plus methods are public, so they are in the list. The times method is private, so it is excluded from the list.

Rearranging Code

To rearrange code, press Ctrl+Shift+Alt over a code element or selection that you want to move. If it makes sense to move the elements, ReSharper shows you a tooltip with possible move options.

If you invoke this command without selection, ReSharper selects the movable element automatically, Sometimes, two selections are made. In this case, one selection is highlighted with blue, the other with yellow. For example, if you invoke this command over a function parameter, ReSharper makes two selections: the parameter itself, which you can move left or right relative to other parameters, and the whole function, which you can move up and down relative to other type members:

Rearranging JavaScript code

ReSharper allows you to move elements in the following ways:

  • Types and type members.
    • Types up and down within the current file or within a containing declaration
    • Base types left and right
    • Type parameters left and right
    • Parameters in declarations and arguments in usages of functions left and right
  • Functions
    • Up and down within the current file or within another function
    • Parameters in declarations and usages of functions left and right
  • Statements
    • Parts of assignment statements left and right
    • Statements within a function or a compound statement up and down
    • Statements out of a compound statement (left) or into an immediately following compound statement (right)
    • Switch sections within a switch statement up and down
    • Closing brace of a compound statement up and down (greedy brace). To move the closing brace, place the caret outside of the brace, press Ctrl+Shift+Alt and then use the up and down arrows to include statements that follow the current compound statement inside it or move the last statement outside it.
  • Expressions
    • Operands in expressions left and right
    • Elements in collection and array initializations left and right
  • Other elements
    • Arguments in template strings left and right
    • Line and c-style comments up and down

Context Actions

ReSharper provides a set of context actions that target TypeScript code. You can find the full list of these actions in the Code Editing | TypeScript | Context actions page of ReSharper options. If necessary, you can also disable some of the actions using this page.

As soon as a context action becomes available for the current caret position, ReSharper displays the corresponding action indicator Coding_Assistance__Context_Actions__icon_editing to the left of the caret. Sometimes, however, ReSharper provides several contextually available features for the current caret position. In this case, the action indicator corresponding to the action with the highest priority is shown, and all other actions only appear when you expand the action list by clicking on the action indicator or pressing Alt+Enter Context actions have the lowest priority, therefore, they often appear in the bottom of the action list:

Here are some examples of context actions for TypeScript:

Create from usage

You can create declarations of symbols after they have been actually used via the corresponding context action.

ReSharper_by_Language__TypeScript__Context_Actions__create_local_variable_01
Or you can use a data type that doesn't exist yet and declare it later using the following context action.
ReSharper_by_Language__TypeScript__Quick-Fixes__create_module_01

Import type

In some other cases, there is no need to create a new entity. When, for example, you want to use an existing one and the only thing that you you haven't taken into account yet is visibility scope.

ReSharper_by_Language__TypeScript__Context_Actions__import_type_01

Regular Expressions Assistance

ReSharper highlights syntax constructs as well as errors and redundancies in regular expressions:

Highlighting of regular expressions

Highlighting colors have the following meanings:

  • Light Blue – character classes, anchors and quantifiers
  • Light Green – grouping constructs
  • Orange – set constructs
  • Pink and light pink – escape sequence
  • Red with curly underline – errors

Matching brackets in groups, group names and sets are highlighted when you set a caret to one of the delimiters. You can toggle and adjust this highlighting using the Highlight matching delimiters setting on the Environment | Editor | Editor Appearance) page of ReSharper options.

By default, ReSharper highlights correct and incorrect escape sequences in all strings:

Highlighting of escape sequence in a string

and template strings:

Highlighting of escape sequence in a template string

If necessary, you can turn this highlighting off by clearing the Highlight special characters in string literals check box on the Code Inspection | Settings page of ReSharper options.

ReSharper also provides IntelliSense support for almost all TypeScript regular expression constructs. In the completion list, each construct is shown with a brief description.

Code completion in regular expressions

You can invoke Basic completion (Ctrl+Space) to show elements, available for the current scope.

Coding assistance in JSDoc

ReSharper understands JSDoc comments in your code and helps you work with them. First of all, ReSharper greatly improves readability of JSDoc comments by highlighting their syntax.

Highlighting of JSDoc comments

When you type JSDoc comments, ReSharper helps you by completing your input. For example, you can type /** above a function and ReSharper will generate a documentation stubs for all parameters and for the return value, setting the caret inside the comment, in the position to start type function description. You can also start typing JSDoc keywords without the leading @:

IntelliSense for JSDoc keywords

When you apply the Rename Refactoring to a function parameter, ReSharper will also rename the corresponding item in JSDoc.

If a function has JSDoc comments, they are available in the parameter information tooltip and in the quick documentation pop-up.

Quick Documentation

With ReSharper, you can quickly review the documentation on TypeScript symbols right in the editor. JSDoc comments will appear in a tooltip. All tags will be presented as sections:

ReSharper showing JSDoc comments in a tooltip

To view the documentation of a symbol, place the caret on it and press Ctrl+Q or choose ReSharper | Edit | Show Quick Documentation in the main menu.

For more information, see Quick Documentation.

See Also

Last modified: 15 December 2016