在使用JavaScript或TypeScript来编写您的部分或所有应用程序逻辑时,您可以依靠ReSharper。 它的功能位于.js、.ts、.d.ts和.json文件中,HTML文件的嵌入式JavaScript代码中,以及JSX语法中。
ReSharper 的大多数导航和搜索功能都支持 JavaScript 和 TypeScript。 与往常一样,使用 Navigate To 快捷键 Alt+` 可以获取从特定符号导航的所有命令。
您喜欢的所有搜索命令,例如 Ctrl+T(Go to Everything/Go to Type)和 Ctrl+Shift+T(Go to File)也都可以使用。 支持的所有导航和搜索功能都会考虑JavaScript和TypeScript语法的特性。 例如,File Structure 可以显示参数的数据类型(如果已在 XML 文档中指定)。
Structural Search 和 Structural Replace 还可以识别 JavaScript/TypeScript 语法。
代码补全功能可以帮助您更快速地编写 JavaScript/TypeScript 代码。 在您输入时,ReSharper会分析周围上下文和您最近输入的符号,以便在补全列表中建议合适的值。 例如,ReSharper可以帮助您查找内置的JavaScript方法和属性,以及当前项目中引用的JavaScript库中的符号。
通过高亮显示注释的语法,ReSharper让JSDoc注释更易读。 在您输入JSDoc注释时,ReSharper可以帮助您完成输入。 例如,您可以在函数上方输入/**,ReSharper将为所有参数和返回值生成文档存根。 JSDoc类型、typedef和回调也会正确高亮显示,并在代码补全中可用。
此外,符号的所有 JSDoc 注释也可以从快速文档弹出窗口中这些符号的用法上查看。
ReSharper 的正则表达式支持包括完全理解 JavaScript/TypeScript 正则表达式。 默认情况下,可以在正则表达式字面量、RegExp
构造函数与方法以及String
对象方法(match()
、search()
、replace()
和split()
)中识别正则表达式。 不过,您可以随时指示ReSharper以正则表达式形式分析任何字符串字面量。
在 JavaScript 和 TypeScript 代码中,您可以像在 C# 中一样使用以下重构:Inline Variable、 Introduce Variable、Introduce Variable for Substring 和 Rename。
在 TypeScript 中,可以使用的一组类型重构包括:Copy Type、Introduce Field、Move Type to Another File or Namespace 和 Move to Folder。
还有一种特定于JavaScript/TypeScript的重构:Move to Resource。 此重构可以在从 Visual Studio 模板(例如 Apache Cordova)创建的 JavaScript/TypeScript 项目中运行,并且允许将字符串字面量移动到资源文件中。
所有JavaScript/TypeScript重构也都可以用于JSX语法中。
借助 ReSharper,您可以使用非现有符号,然后在几乎所有支持的语言中根据这些用法生成恰当的实现。 JavaScript和TypeScript也不例外 - 对于任何未解析的符号,ReSharper都会建议一种或多种创建方式。
在TypeScript类型声明上按Alt+Insert时,ReSharper让您可以快速地为此类型创建构造函数。 构造函数生成向导可以创建将类型和基类型中的选定字段用作参数的非默认构造函数。
对于继承的类型,有两种相关的代码生成功能:
ReSharper 可以帮助您自动维护 JavaScript 和 TypeScript 代码中代码样式的两个基础:代码格式化规则和命名约定。
事实上,代码格式化的效果甚至比在C#中更好:在选定代码块上按Alt+Enter并选择Format selection | Configure可以查看和配置影响选定代码块的所有格式化规则。
提供特定于JavaScript和TypeScript的代码样式偏好设置:您可以一致地使用单引号(')或双引号(")来处理字符串字面量,并为语句自动添加或移除可选的分号。
在TypeScript中,您还可以控制如何在声明中指定类型(显式类型名称、var
或any
),是否显式使用public
修饰符,以及如何导入模块。
所有 JavaScript 和 TypeScript 代码样式偏好设置都可以使用单个命令(快速修复或代码清理)在任何范围中应用。
ReSharper 可以基于 QUnit 和 Jasmine 直接在 Visual Studio 中发现和运行单元测试。 您可以选择使用哪款浏览器来执行 JavaScript/TypeScript 测试,或者使用 PhantomJS 实现无头测试。
与 .NET 单元测试类似,您也可以使用 Unit Test Explorer 在您的解决方案中浏览 JavaScript/TypeScript 测试,从此窗口、Solution Explorer 或编辑器中运行测试,以及使用多个单元测试会话。
ReSharper扩展了内置的代码分析规则,提供对以下三种静态分析工具的支持:JSLint、ESLint和TSLint。 所有这些linter都有助于确保JavaScript和TypeScript代码可读且可维护。 它们还允许添加自定义规则,您可以将这些规则包含在ReSharper代码分析中。
如果您的计算机上已配置Node.js解释器,您可以在Tools | Web Linters下的ReSharper设置中启用linter。
借助JSON值帮助程序,您可以指示ReSharper为您的JSON文件提供代码补全或验证。 您可以在JSON Value Helpers选项页面中基于文件名掩码和/或架构匹配添加帮助程序。 也可以在JSON选项中添加自定义JSON架构目录。
本页面提供的所有键盘快捷键都在 ReSharper 的默认“Visual Studio”按键映射中。 有关 ReSharper 两种按键映射的详细信息,请参阅 ReSharper 文档。