JSDoc Support
TypeScript 有着非常丰富的 JSDoc 支持,很多情况下您甚至可以不写 .ts 文件
而仅仅使用 JSDoc 注解去创建丰富的开发环境。
JSDoc 注释是由两个星号(*)开头的多行注释。
// 如果您将鼠标悬停到 myVariable,你可以看到它已经
被附加了这段在 JSDoc 注释中的文字。
JSDoc 注释是一种为 TypeScript 和 您的编辑器提供类型信息的方式。
让我们简单的从将变量的类型设置为内置类型开始。
对于所有这些示例,您可以将鼠标悬停在名称上,然后再下一行尝试
输入【example】以查看自动完成选项。
/* 这是一个普通注释 */
/** 这是一个 JSDoc 注释 */
// JSDoc 注释会附加到下方最近的 JavaScript 代码中。
const myVariable = "Hi";
// 你可以在手册中查看所有已支持的标签:
https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc
但是,我们将在这里尝试一些更常见的示例,您也可以将手册中的任何示例粘贴到此处。
从 JavaScript 配置文件中导入类型:
/** @type {number} */
var myNumber;
// 在 JSDoc 中扩展全局变量是一个涉及更多内容的过程,您可以
在 VS Code 文档中找到:
https://code.visualstudio.com/docs/nodejs/working-with-javascript#_global-variables-and-type-checking
在您的函数中添加 JSDoc 注释是一个双赢的情况,您将获得更好的工具,
所有 API 的使用者也一样。
/** @type { import("webpack").Config } */
const config = {};
// 创建一个复杂的类型以在其他多处地方复用:
/**
* @typedef {Object} User - 用户账户
* @property {string} displayName - 用户用来展示的名字
* @property {number} id - 唯一 ID
*/
// 然后通过引用类型的名字来使用它:
/** @type { User } */
const user = {};
// type 和 typedef 有兼容 TypeScript 的内联类型快捷用法:
/** @type {{ owner: User, name: string }} */
const resource;
/** @typedef {{owner: User, name: string} Resource */
/** @type {Resource} */
const otherResource;
// 声明一个有类型的函数:
/**
* 将两个数字相加
* @param {number} a 第一个数字
* @param {number} b 第二个数字
* @returns {number}
*/
function addTwoNumbers(a, b) {
return a + b;
}
// 你可以使用大多数 TypeScript 的类型工具,例如并集类型:
/** @type {(string | boolean)} */
let stringOrBoolean = "";
stringOrBoolean = false;