一.JSDoc 与类型检查 .js文件里不支持 TypeScript 类型标注语法: // 错误 'types' can only be used in a .ts file. let x: number...TypeScript 类型系统解析这些 JSDoc 标记得到额外类型信息输入,并结合类型推断对.js文件进行类型检查 P.S.关于.js类型检查的更多信息,见检查 JavaScript 文件_TypeScript...Compiler,更多相关讨论见Add support for @template JSDoc 三.类型标注语法 TypeScript 兼容 JSDoc 类型标注,同时也支持在 JSDoc 标记中使用.../a").x; 注意,这种语法是 TypeScript 特有的(JSDoc 并不支持),而 JSDoc 中采用 ES Module 引入语法: // a.js /** * @typedef State...类型转换 类型转换(TypeScript 里的类型断言)语法与 JSDoc 一致,通过圆括号前的@type标记说明圆括号里表达式的类型: /** @type {!
这几个月,想必大家都听到过一个新闻: Svelte 弃用 TypeScript,改用 JSDoc 了。...TypeScript 我们知道,是用来给 JS 加上类型的,可以实现类型提示和编译时的类型检查。 那 JSDoc 能够完成一样的功能么?Svelte 是出于什么原因弃用 TS 的呢?...我们总得先了解下 JSDoc: 可能大家认为的 JSDoc 是这个东西: 在代码的注释上加上类型的标识,然后通过 jsdoc 命令行工具,就可以直接生成文档。...比如这样的文档: 确实,这个是 JSDoc 最初的含义。 但我们说的 JSDoc 并不是这个,而是 TS 基于 JSDoc 语法实现的,在注释里给代码添加类型的语法。...然后安装 typescript: npm install --save-dev typescript 创建 tsconfig.json 文件: npx tsc --init 生成的 tscconfig.json
你可以通过使用JSDoc在JavaScript中获得TypeScript的所有好处 TypeScript所提供的是一个静态类型系统。这意味着类型信息在运行代码中没有影响。...」 较少人知道的是,JSDoc是你充分使用TypeScript所需要的。...TypeScript分析器能够理解用JSDoc写的类型,并给你提供与.ts文件相同的静态分析。 我不会在这里提供完整的语法文档。...但是在这个提案被接受之前,我们只能决定使用JSDoc或者TypeScript工具链。...建议 所以现在我的建议是这样的: 当你正在做一个有编译步骤的项目时,使用TypeScript没有什么坏处 但是如果你不需要编译步骤,那么坚持使用JSDoc类型注释可能更容易。
原文链接:https://fettblog.eu/typescript-jsdoc-superpowers/undefined作者:@ddprrtundefined时间:2019.07.16 我们可以把...目录 带有JSDoc注释的TypeScript 激活检查 内联类型 定义对象 定义函数 导入类型 使用泛型 枚举 typeof 从类扩展 带有 JSDoc 注释的 TypeScript 在最优的情况下,...我们可以通过添加 JSDoc 注释为 TypeScript 提供更多信息: /** * Adds VAT to a price * * @param {number} price The price...结果就是使用 JSDoc 类型可以让你走得很远。...这样,您就可以在 TypeScript 中编写 TypeScript 类型定义,并将它们导入源文件中。
负责 Svelte 编译器的开发者说,改用 JSDoc 后,代码不需要编译构建即可进行调试 —— 简化了编译器的开发工作。 Svelte 不是第一个放弃 TypeScript 的前端框架。...业内开始用 TypeScript 是因为 TypeScript 提供了类型检查,弥补了 JavaScript 只有逻辑没有类型的问题, 对于大型项目、多人协作和需要高可靠性的项目来说,使用 TypeScript...JSDoc:看我几分像从前?...但前面提到的 TS 的固有问题也困扰着开发者们,直到今年几起标志性事件的发生,将大家的目光拉回 JSDoc,人们惊讶地发现:JSDoc 并没有停留在旧时光中。...吾谓大弟但有武略耳,至于今者,学识英博,非复吴下阿蒙 除了 JSDoc 本身能力的不断丰富,2018 年发布的 TypeScript 2.9 版本无疑是最令人惊喜的一剂助力;该版本全面支持了将 JSDoc
JSDoc VS TypeScript JSDoc和TypeScript都解决了编写和维护纯JavaScript代码的问题。然而,它们采用了不同的方法,各有利弊。...JSDoc相对于TypeScript的优势: 灵活性和兼容性:JSDoc只是JavaScript注释,这意味着它可以添加到任何JavaScript代码库中,而不受语言版本的限制,并且不像TypeScript...无需编译步骤:这是从TypeScript转换到JSDoc最具动力的原因之一。...使用JSDoc的缺点 虽然JSDoc相对于TypeScript有很多优势,但是随着时间的推移,TypeScript的使用越来越普遍。...以下是TypeScript相对于JSDoc的一些优势: 更强大的静态类型:TypeScript提供了一种强大的类型模型,并在编译时捕获这些错误。
*/ function OldMethod(){ // 该方法已被弃用 } JSDoc JSDoc 是一种用于为 JavaScript 代码提供文档的注释规范。 1....// TypeScript let name: string = 'Amy'; // JSDoc /** @type {string} */ let name = 'Amy'; Vue JsDoc Vue.js...的文档注释使用的是基于 JSDoc 的风格,但是添加了Vue.js 特有的运行时和模板相关的标签。
负责 Svelte 编译器的开发者说,改用 JSDoc 后,代码不需要编译构建即可进行调试 —— 简化了编译器的开发工作。 Svelte 不是第一个放弃 TypeScript 的前端框架。...其次,这两者并不冲突,我个人在写 TypeScript 的时候也会写对应的 JSDoc,因为 TypeScript 的类型没法有更多的注释和描述。...我更期望看到后续 TypeScript 团队能优化这块的体验。 刘易成:JSDoc 只能解决一部分类型的问题,而 TypeScript 是一个完整的类型系统。...TypeScript 生态更繁荣,对于普通开发者和普通的项目而言,使用 JSDoc 的开发和维护成本可能会比 TypeScript 更高。...工具支持的差异:尽管一些工具和编辑器可以利用 JSDoc 注释进行类型检查,但与 TypeScript 相比,它们的功能和智能感知可能有所限制。
基于 JSDoc JSDoc 是目前最通用的 JavaScript API 文档生成器,根据其语法编写代码注释,可以十分方便地自动生成文档。...VSCode 基本支持 JSDoc 的常见语法,具体使用可参见JSDoc support in JavaScript。...基于 TypeScript 类型声明文件 除了使用 JSDoc 提前声明类型,更为激进的做法是直接使用微软开发的 TypeScript,为整个项目带来完善的静态类型检查。...不过由于和 TypeScript 师出同门,VSCode 能够直接读取前者的类型声明文件,来为 JavaScript 提供智能提示(实际上 JavaScript 的智能提示功能就是基于 TypeScript...不严格地来说,ts 类型声明文件就像用 TypeScript 语法将 JSDoc 的注释重写了一遍并提取到了单独的文件中。
好消息是,JSDoc 的 @ts-check,可以现实这个愿望。...答案就是 // @ts-check,在 js 文件的头部引入这样一行注释,然后配合JSDoc就可以在JavaScript代码中使用 TypeScript的类型检查了。...JSDoc 类型标记 既然ts-check这么好用,我们来看看 JSDoc 类型的注释支持哪些类型的检测。...写在最后 对于老项目,使用 // @ts-check 和 JSDoc 来来享受TypeScript类型系统的好处是最简单、学习成本最低的方法。...而对于新项目,则更加推荐直接使用 TypeScript 来进行代码编写,并且各大框架里面都是用的TypeScript进行的代码编写,在可期的未来,TypeScript将会越来越受欢迎。
多亏了 TypeScript和 JSDoc,这两个愿望都有变成现实的可能。...本着不对项目产生侵入的原则,TypeScript可以通过 JSDoc 风格的注释来完成这一点。...引入 TypeScript来享受类型系统的好处是最简单、学习成本最低的方法。...(类似于Python 3),到时候可以避免再从 TypeScript回归 JavaScript。...参考链接 Type Checking JavaScript Files JSDoc support in JavaScript
多亏了 TypeScript和 JSDoc,这两个愿望都有变成现实的可能。...本着不对项目产生侵入的原则,TypeScript可以通过 JSDoc 风格的注释来完成这一点。...引入 TypeScript来享受类型系统的好处是最简单、学习成本最低的方法。...到时候可以避免再从 TypeScript回归 JavaScript。...参考链接 Type Checking JavaScript Files JSDoc support in JavaScript
JSDoc 3 是一个用于 JavaScript 的API文档生成器,类似于 Javadoc 或 phpDocumentor。可以将文档注释直接添加到源代码中。...JSDoc 工具将扫描你的源代码并为您生成一个 HTML 文档网站(当然,即使你不进行生成,其也被大部分浏览器所识别和支持)。JSDoc 的目的是记录 JavaScript 应用程序或库的 API。...JSDoc注释通常应该放在记录代码之前。为了被 JSDoc 解析器识别,每个注释必须以 /** 序列开头。以 /*、/***开头或超过3颗星的注释将被忽略。这个特性用于控制解析注释块的功能。...使用JSDoc可以提高代码可读性和可维护性,让代码更易于理解和使用。在阅读和使用第三方库时,可以通过查看JSDoc生成的文档来了解函数和方法的使用方式、参数、返回值等信息。...参考Use JSDoc: IndexJSDoc 入门 | JSDoc中文文档 | JSDoc中文网
JSDoc是一个根据javascript文件中注释的信息,生成API文档的工具。生成的文档是html文件。类似 JavaDoc 和 PHPDoc。...用法 /** 一坨注释之类的 */ JSDoc会从/**开头的注释中抽取信息。用/*,/***开头的注释会被JSDoc忽略。...author - The author of the book. */ function Book(title, author) { } 生成API文档 我是用的基于Grunt的插件:grunt-jsdoc...下面是我的grunt-doc的配置 'jsdoc': { src: ['my-lib/*/*.js', '!...资源 官网 jsdoc github grunt-jsdoc jsdoc的Grunt插件
写在前面 TypeScript 的类型检查不仅限于.ts,还支持.js 但为了确保文件内容只含有标准的 JavaScript 代码,.js文件按照 ES 语法规范来检查,因而不允许出现 TypeScript...所以通过JSDoc来给 JavaScript 添加额外的类型信息: JSDoc comments can be used to add some type information to your JavaScript...code, see JSDoc Support documentation for more details about the supported JSDoc constructs....另外,TypeScript 还支持一些用来控制类型检查的特殊注释: // @ts-nocheck:文件级,跳过类型检查 // @ts-check:文件级,进行类型检查 // @ts-ignore:行级,...(摘自Adding documentation comments to your code) 另外,并非所有 JSDoc 标记都支持,白名单见Supported JSDoc 三.默认类型 另一方面,JavaScript
,TypeScript 不断发展,带来了大量的改进和新功能。...JSDoc 中的@satisfies 支持 TypeScript 5.0 中新的@satisfies JSDoc 标记使您能够指定函数实现满足特定接口。...`; } 在这个例子中,greeter 函数被标记为@satisfies JSDoc 标签,表明它满足 Greeter 接口。 10....JSDoc 中的@overload 支持 TypeScript 5.0 添加了对 @overload JSDoc 标记的支持,允许您在 JavaScript 代码中为单个实现定义多个函数签名。...在此示例中,add 函数标有两个 @overload JSDoc 标记,指定它可以处理数字和字符串作为参数。 11.
所以为了解决大型项目中 JavaScript 维护成本高的问题,前段时间我们团队开始使用 TypeScript,但是由前几年所积累下来的代码,并不是说改立马都能全部改完的,所以这个重构将是一个漫长的过程...所以编辑器就会使用一个在 TypeScript 中经常出现用来标识任意类型的 any 关键字来描述函数的参数以及返回值。...具体的格式是这样的(切换到 TypeScript 后一般会移除类型的定义,改用代码中的类型定义): /** * @param {number} param 描述 */ function test (...userInfo * @param {Order} orders */ async function notify (userInfo, orders) { } 实际上并没有添加几行文本,在切换到 TypeScript...上边介绍的只是 JSDoc 常用的几个标记,实际上还有更多的功能没有提到,具体的文档地址:jsdoc 参考资料 jsdoc | @return jsdoc | @param jsdoc | @typedef
我们仅从 JavaScript 文件开始,然后将越来越多的文件切换到 TypeScript。 我们可以继续使用普通的 JavaScript,并通过 JSDoc 注释添加类型信息,直到全部完成为止。...) 策略1:JavaScript/TypeScript 混合代码库 如果我们用编译器选项 --allowJs,则 TypeScript 编译器支持 JavaScript 和 TypeScript 文件的混合...: TypeScript 文件被编译。...我们运行 TypeScript 编译器,但仅作为类型检查器(编译器选项 --noEmit)实用。 通过 JSDoc 注释(请参见下面的示例)和类型定义文件添加类型信息。...以下是通过 JSDoc 注释为普通 JavaScript 指定静态类型的方式: /** * @param {number} x - A number param.
支持 JSDoc 高亮,支持 @param, @returns, @link, @ignore 和 @example 标签。 支持文档覆盖率统计。...文档注释 comments Compodoc 使用 TypeScript AST 解析器和它的内部 API,因此注释必须是合法的 JSDoc 注释。...JSDoc Tags 由于 TypeScript 编译器的限制 目前 Compodoc 只支持以下的 JSDoc 标签: @returns —— 描述返回值 @ignore —— 表示标记的内容永远不会出现在文档中...number { let sum = a + b; this.storedValued = sum; return sum; } } 其实 Compodoc 除了能够根据 JSDoc
领取专属 10元无门槛券
手把手带您无忧上云