编辑TypeScript

Visual Studio Code 对 TypeScript 有很好的编辑支持。本文将深入介绍 VS Code 内置的编辑和编程语言功能。如果你想了解更多VS Code中的通用编辑功能,比如键盘快捷键、多光标、搜索以及查找替换,可以阅读《基础编辑》。

IntelliSense

IntelliSense 会为你展示智能代码补全、悬停信息和签名帮助,让你能更快更准确地编写代码。

TypeScript 字符串类型的小完成

VS Code 为单个 TypeScript 文件以及 TypeScript 提供 IntelliSensetsconfig.json项目。

悬停信息

将鼠标悬停在 TypeScript 符号上,可快速查看其类型信息和相关文档:

lodash函数的悬停

你也可以用 ⌘K ⌘I(Windows,Linux Ctrl+K Ctrl+I)快捷键显示当前光标位置的悬停信息。

签名帮助

当你编写 TypeScript 函数调用时,VS Code 会显示函数签名的信息,并突出显示你当前正在执行的参数:

lodash 大写函数的签名帮助

当你输入 a 或 时,签名帮助会自动显示(,在函数调用中。使用⇧⌘Space(Windows,Linux Ctrl+Shift+Space手动触发签名帮助。

片段

VS Code 包含基本的 TypeScript 片段,在你输入时会被推荐;

打字稿摘要

你可以安装扩展以获取额外的摘要,或者为TypeScript自定义自己的摘要。更多信息请参见用户定义摘要

提示

你可以通过设置禁用片段editor.snippet建议“没有”你的设置文件里。如果你想看片段,可以指定相对于建议的顺序;顶部(“顶”),在底部(“底层”),或按字母顺序排列(“内线”).默认为“内线”.

镶嵌提示

内嵌提示会为源代码添加额外的内联信息,帮助你理解代码的作用。

参数名称内嵌提示显示函数调用中参数名称:

参数名称内嵌提示

这能帮助你一目了然地理解每个参数的含义,尤其适用于使用布尔标志或参数容易混淆的函数。

要启用参数名称提示,设typescript.inlayHints.parameterNames.enabled.有三种可能的数值:

  • 没有— 禁用参数嵌入提示。
  • 字面意义——仅显示字面值(字符串、数字、布尔值)的内嵌提示。
  • 全部—— 所有论点都显示内嵌提示。

变量类型内嵌提示显示了没有显式类型注释的变量类型。

地点:typescript.inlayHints.variableTypes.enabled

可变类型镶嵌提示

属性类型内嵌提示显示没有显式类型注释的类属性类型。

地点:typescript.inlayHints.propertyDeclarationTypes.enabled

属性类型内嵌提示

参数类型提示显示隐式类型参数的类型。

地点:typescript.inlayHints.parameterTypes.enabled

参数类型内嵌提示

返回类型内嵌提示显示没有显式类型注释的函数返回类型。

地点:typescript.inlayHints.functionLikeReturnTypes.enabled

返回类型内嵌提示

参考文献 CodeLens

TypeScript引用CodeLens显示类、接口、方法、属性和导出对象的内联引用计数:

TypeScript 引用 CodeLens

你可以通过设置来启用“typescript.referencesCodeLens.enabled”: true在用户设置文件中。

点击参考文献数量,快速浏览参考文献列表:

TypeScript 引用 CodeLens 窥视

实现CodeLens

TypeScript 实现的 CodeLens 显示接口的实现者数量:

TypeScript 实现 CodeLens

你可以通过设置来启用“typescript.implementationsCodeLens.enabled”: true.

与参考的CodeLens类似,你可以点击实现计数,快速浏览所有实现列表。

汽车进口

自动导入通过帮助你找到可用符号并自动添加导入,加快了编码速度。

只需开始输入,就能看到当前项目中所有可用TypeScript符号的建议

全局符号显示在建议列表中

如果你从其他文件或模块中选择了其中一个建议,VS Code 会自动为它添加导入。在这个例子中,VS Code 添加了一个赫拉克勒斯文件顶部:

从不同文件中选择符号后,会自动添加导入

你可以通过设置来禁用自动导入“typescript.suggest.autoImports”: false.

添加导入粘贴

当你在编辑器之间复制粘贴代码时,VS Code 可以自动添加导入。当你粘贴包含未定义符号的代码时,会显示一个粘贴控件,让你选择将代码粘贴为纯文本或添加导入。

这个功能默认是开启的,但你可以通过切换

typescript.updateImportsOnPaste.enabled
  • 在VS代码中打开
  • 在VS Code Insiders中开放
环境。

你可以让带导入的粘贴成为默认行为,而不显示粘贴控制,方法是配置

editor.pasteAs.preferences
  • 在VS代码中打开
  • 在VS Code Insiders中开放
环境。包括text.updateImports.jststext.update导入粘贴时总是添加导入。

JSX和自动关闭标签

VS Code 的 TypeScript 功能也支持 JSX。要在TypeScript中使用JSX,请使用*.tsx文件扩展名而非正常扩展名*.ts:

JSX中的IntelliSense

VS Code 还包含 JSX 专属功能,如 TypeScript 中 JSX 标签的自动关闭:

赛场“typescript.autoClosingTags”错误以禁用 JSX 标签关闭。

JSDoc 支持

VS Code 的 TypeScript IntelliSense 理解许多标准的 JSDoc 注释,并用它们在建议悬停信息签名帮助中展示打字信息和文档。

VS Code 中的 TypeScript 语言

请记住,使用 JSDoc 编写 TypeScript 代码时,不应包含类型注释。TypeScript编译器仅使用TypeScript类型的注释,忽略JSDoc中的注释。

要在 TypeScript 中禁用 JSDoc 评论建议,设置“typescript.suggest.completeJSDocs”: false.

代码导航

代码导航让你能快速浏览 TypeScript 项目。

  • 进入定义F12——进入符号定义的源代码。
  • 窥视定义 ⌥F12(Windows Alt+F12,Linux Ctrl+Shift+F10——调出显示符号定义的窥视窗口。
  • 前往参考文献 ⇧F12(Windows,Linux Shift+F12——显示所有符号的引用。
  • 进入类型定义——进入定义符号的类型。对于类的实例,这会揭示该类本身,而不是实例定义的位置。
  • 前往实现 ⌘F12(Windows,Linux Ctrl+F12——前往接口或抽象方法的实现。

你可以通过命令面板中的“去到符号”命令(Windows,Linux Ctrl+Shift+P中的“去到符号”命令进行导航。

  • 进入文件中的符号 ⇧⌘O(Windows,Linux Ctrl+Shift+O
  • 在工作区 ⌘T 中切换到符号(Windows,Linux Ctrl+T

格式

VS Code 包含一个 TypeScript 格式化器,提供基本的代码格式和合理的默认值。

使用该Typescript.format.* 设置以配置内置格式化器,例如让大括号出现在独立行上。或者,如果内置的格式化器妨碍了作,可以设置“typescript.format.enable”错误用来关闭它。

如果想要更专业的代码格式风格,可以试着安装VS Code市场的格式扩展。

句法高亮与语义高亮

除了语法高亮,TypeScript 和 JavaScript 还提供语义高亮功能。

句法高亮会根据词汇规则为文本上色。语义高亮增强了基于语言服务解析符号信息的语法着色。

语义高亮是否可见取决于当前的色彩主题。每个主题都可以配置是否显示语义高亮以及如何样式化语义标记。

如果启用语义高亮,并且色彩主题有对应的样式规则,可以看到不同的颜色和样式。

语义高亮的颜色可以根据以下原因变化:

  • 符号的解析类型:命名空间、变量、属性、变量、类、接口、类型参数。
  • 变量/属性是只读(const)还是可修改。
  • 无论变量/属性类型是否可调用(函数类型)。

下一步

继续阅读,了解: