首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSDoc ,一个可替代 TypeScript 的方案?

与JSDoc不同,这些类型在代码本身中结束,并且不受强制执行。 类型推断:TypeScript 可以从其值推断类型。这有助于减少显式类型注解,使代码库更简洁。...在一个 .js 文件中添加JSDoc,如所述只是注释,通过使用额外的 * 开启一个注释来完成 // Normal Javascript Comment 1 /* Normal Javascript Comment...改进通用代码文档: 除了在代码中添加必要的类型之外,JSDoc还有很多方法可以提高可读性和理解的便利性。...它用于创建到指定URL的链接,而 @tutorial 标签用于将用户引导到生成的文档中的相对教程链接。 创建模块:在JSDoc中创建模块可以使用文件顶部的 @module 标签。...从JSDoc生成.d.ts文件 在TypeScript中, .d.ts 文件代表包含所有 .ts 文件都可以访问的类型声明文件。

83110

为你的 JavaScript 项目添加智能提示和类型检查

例如,可以使用 @type 标签来赋予部分声明的 object 一个特殊类型: /** * @type {{a: boolean, b: boolean, c: number}} */ var x...当然,对于老项目来说,改造的成本较为巨大(使用 Flow 也类似,要动的代码太多,况且 Flow 烂尾了)。...不严格地来说,ts 类型声明文件就像用 TypeScript 语法将 JSDoc 的注释重写了一遍并提取到了单独的文件中。...VSCode 更是将二者作了融合,当你二者混用的时候,可以直接在 JSDoc 的注释中直接使用 ts 类型声明文件中定义的 interface 和 class 等。...另外,在 VSCode 中,类型检查并非默认开启,这意味着即使你有详尽的 JSDoc 注释或 ts 类型声明文件,依然可能在数据类型上栽跟头。

3.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端食堂技术周刊

    node_modules 文件夹中到底发生了什么?...目的是使开发人员能够运行用 TypeScript、Flow 和 JavaScript 的其他静态类型超集编写的程序,而无需任何转译,前提是它们坚持使用该语言的某个相当大的子集。...对于 TypeScript 和 Flow 来说,随着时间的推移,语言降级的需求将会越来越少,所以将它们转换为 JavaScript 的主要工作就剩下了删除类型注释。...如果让 JavaScript 本身支持类型注释,那么就可以减少构建的步骤,突破 JSDoc 类型注解的限制(冗长且缺乏表现力),让用户以更简单的方式获得静态类型的好处。...好文推荐 下面来看一下好文推荐,本周推荐的好文是: 你真的了解 gif 吗?分析 gif 文件和一些奇怪的 gif 特性[11] 这是一篇对 gif 本质深度的探究的文章。

    78820

    有JSDoc还需要TypeScript吗

    一旦你在本地完成了所有工作,你就需要考虑如何分发你的代码。你会检查你编译的.js文件吗?你会创建一个CI管道来自动编译你的.ts文件吗?如果你在写一个库,你如何发布你的库,以便它可以被其他项目使用?...你可以通过使用JSDoc在JavaScript中获得TypeScript的所有好处 TypeScript所提供的是一个静态类型系统。这意味着类型信息在运行代码中没有影响。...TypeScript分析器能够理解用JSDoc写的类型,并给你提供与.ts文件相同的静态分析。 我不会在这里提供完整的语法文档。...最重要的是你要知道,几乎所有你能在.ts文件中做的事情,你都能用JSDoc来做。...如果你有复杂的类型,你仍然可以编写你的*.d.ts文件并在你的JSDoc注释中导入它们。

    35120

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦...ClojureScript与JavaScript一样采取动态类型,但由于需要通过Google Closure Compiler编译后才能运行,因此我们可以如同JS那样借助GCC的注解来引入编译时类型检查...希望大神指点迷津~~ 注解语法 首先GCC用到的注解语法仅为JSDoc的子集,所以直接看GCC的注解即可,而ClojureScript一般就用如下几个 @private {Type} 标识私有成员,且该成员的数据类型...标识函数返回值的数据类型和描述 @throws {Type} 标识函数可能抛出异常类型 接下来就是重点了,我们写了这么多还不就是想引入数据的类型描述吗?...,而是外部定义的数据类型,因此我们需要添加externs文件让GCC识别。

    95270

    不需要TypeScript,JS+JSDoc够了?大佬说我想多了

    当然,就目前的情况,在力所能及的情况下,我个人推荐能用 TypeScript 就用 TypeScript ,但是否要玩类型体操则根据开发者自身情况来决策。...使用 JavaScript 可以更加直接地表达这些概念,而不需要过多的类型注解和编译步骤。这使得开发者可以更快地理解和使用框架,并且更容易进行自定义和扩展。...而使用 JavaScript + JSDoc 可能需要更多的手动工作来编写和维护类型注释。...像我们就很重视 “API 元数据”,通过工程化的方式,可以从代码中提取出来接口 API 信息,从而可以在 codegen,mock,前后端协作等很多方面来提升研发体验和研发效能。...在人气方面,JavaScript 的开发者社区仍然是巨大而活跃的,在社区中可以很方便地找到大量成熟的开发项目和可用资源。

    52810

    编译期类型检查 in ClojureScript

    前言  话说"动态类型一时爽,代码重构火葬场",虽然有很多不同的意见(请参考),但我们看到势头强劲的TypeScript和Flow.js,也能感知到静态类型在某程度上能帮助我们写出更健壮的代码(当然要基于充分的单元测试上啦...ClojureScript与JavaScript一样采取动态类型,但由于需要通过Google Closure Compiler编译后才能运行,因此我们可以如同JS那样借助GCC的注解来引入编译时类型检查...希望大神指点迷津~~ 注解语法 首先GCC用到的注解语法仅为JSDoc的子集,所以直接看GCC的注解即可,而ClojureScript一般就用如下几个 @private {Type} 标识私有成员,且该成员的数据类型...标识函数返回值的数据类型和描述 @throws {Type} 标识函数可能抛出异常类型 接下来就是重点了,我们写了这么多还不就是想引入数据的类型描述吗?...,而是外部定义的数据类型,因此我们需要添加externs文件让GCC识别。

    72320

    深入探讨JavaScript类型检查

    静态类型检查体系(TypeScript/Flow) 优化实现: // 使用TS高级类型增强校验 type Numeric = T; // 自定义类型标签 function...类型系统 更完备的高级类型系统 渐进式类型检查 配置文件 tsconfig.json .flowconfig 迁移成本 需改写文件后缀 注释方式低侵入 2.....test(value)) { throw new Error('Invalid email'); } return value as Email; }; CQRS模式中的类型隔离...新项目推荐直接使用TypeScript 遗留项目可先用JSDoc逐步迁移 关键模块使用Zod进行运行时验证 性能优化建议 # 开启TS增量编译 tsc --incremental # 配置路径映射减少编译范围...量子类型系统:研究基于量子逻辑的类型不确定性管理 通过系统化应用这些方法,开发者可以构建出具备工业级健壮性的JavaScript应用,在提升代码质量的同时降低维护成本。

    8710

    Ant+JSDocTookit生成Javascript文档

    /docs" encoding="utf-8"> 如果有中文指定输入/输出文件的编码encoding="utf-8" jsdoc的模板文件就是HTML+CSS,所以可以修改成你想要的样子,也可以装上第三方的模板...YUI Doc和JavaDoc、JSDoc和JsDoc Toolkit相似。YUI Doc是由注解驱动(comment-driven )的系统,它通过解析代码中描述结构的注解来生成文档。...我不知道它是否支持2.5以上,有兴趣的可以试试。...为了使用方便需要配置一下“环境变量”,即在“我的电脑 》右键 》属性 》高级 》环境变量 》系统变量 》 选中Path 》 编辑”,在弹出框中加入: ;D:\Program Files\python...支持中文注释的解决方案 下载最新版本YUI Doc,解决方案在yuidoc-27中验证通过 把所有.js文件都转成不带BOM的UTF-8编码 修改文件/bin/yuidoc_highlight.py

    88730

    你了解 Typescript 吗

    支持使用ES6和ES7的新特性 在TypeScript中,你可以直接使用ES6的最新特性,在编译时它会自动编译到ES3或ES5。...Typescript vs Flow: Typescript是JavaScript的强类型版本。 Flow是通过一组可以添加到JavaScript的注解,然后通过工具检查正确性。...Flow的类型注解能自动的被Babel移除。 与TypeScript相比,Flow在类型检查中做得更好。...在一个静态类型的编程语言中,使用接口来定义子系统之间的界限。 4. 类型的支持,使代码更易阅读和理解。 我们不需要深入了解代码的实现,也不需要去阅读文档,就可以更更好地理解代码。 5....(@types/node等) 最后来个小故事 刚开始,项目比较小,我一个人写,每行代码我都能记得,每个变量我都知道是什么。

    5.6K10

    TypeScript基础总结

    虽然JS异常灵活,但是在大型复杂的web工程里面并不合适。除了TS,其它公司比如FB推出了Flow,Google推出了Clojure,这些都是为了给JS增加类型。...另外,TS中的接口描述变量时可以使用?定义某个变量为可选变量。比如对某个对象进行约束时,如果对象的某个属性设置成了可选,则传入的对象可以不包含这个属性。...接口 - 描述类类型 与C#或Java里接口的基本作用一样,TypeScript也能够用它来明确的强制一个类去符合某种契约。...在TS里,泛型的类型变量定义为T,需要使用包裹起来,这个时候函数会捕获入参的类型,然后在后面就可以使用这个类型了。如下:。...,调用时不需要显示的指明类型,推荐使用上面代码中的第二种方式。

    1K10

    @ ts-check

    @ts-check 立即上手 使用 TypeScript的最佳方式肯定是直接使用它的语法来编写 .ts 文件,然后通过编译器转换成 .js 文件。...答案就是 // @ts-check,在 .js 文件的头部引入这样一行注释,就可以使用 TypeScript了。...JSDoc 添加类型 如果仅仅使用 // @ts-check的话,我们只能使用它的自动类型推断功能,这对于大型项目来说是远远不够的,我们希望能像强类型语言一样指定每个变量的类型。...本着不对项目产生侵入的原则,TypeScript可以通过 JSDoc 风格的注释来完成这一点。...对于新项目,相较于激进地使用 .ts 文件,我认为 // @ts-check 和 JSDoc 是更好的方法,因为 JavaScript在不久的未来很有可能会引入可选的类型系统(类似于Python 3),

    2.8K10

    @ts-check

    @ts-check 立即上手 使用 TypeScript的最佳方式肯定是直接使用它的语法来编写 .ts 文件,然后通过编译器转换成 .js 文件。...答案就是 // [@ts-check](/user/ts-check),在 .js 文件的头部引入这样一行注释,就可以使用 TypeScript了。...JSDoc 添加类型 如果仅仅使用 // [@ts-check](/user/ts-check)的话,我们只能使用它的自动类型推断功能,这对于大型项目来说是远远不够的,我们希望能像强类型语言一样指定每个变量的类型...本着不对项目产生侵入的原则,TypeScript可以通过 JSDoc 风格的注释来完成这一点。...对于新项目,相较于激进地使用 .ts 文件,我认为 // [@ts-check](/user/ts-check) 和 JSDoc 是更好的方法,因为 JavaScript在不久的未来很有可能会引入可选的类型系统

    1.8K80

    @ts-check

    @ts-check 立即上手 使用 TypeScript的最佳方式肯定是直接使用它的语法来编写 .ts 文件,然后通过编译器转换成 .js 文件。...答案就是 // [@ts-check](/user/ts-check),在 .js 文件的头部引入这样一行注释,就可以使用 TypeScript了。...JSDoc 添加类型 如果仅仅使用 // [@ts-check](/user/ts-check)的话,我们只能使用它的自动类型推断功能,这对于大型项目来说是远远不够的,我们希望能像强类型语言一样指定每个变量的类型...本着不对项目产生侵入的原则,TypeScript可以通过 JSDoc 风格的注释来完成这一点。...对于新项目,相较于激进地使用 .ts 文件,我认为 // [@ts-check](/user/ts-check) 和 JSDoc 是更好的方法,因为 JavaScript在不久的未来很有可能会引入可选的类型系统

    1.1K20

    不是Typescript用不起,而是JSDoc更有性价比?

    这难道不是在开历史的倒车吗?...随着前后端分离的开发范式开始流行,前端业务逻辑也日益复杂,虽然不用为每个应用生成对外的 API 文档,但类型安全变得愈发重要,开发者们也开始尝试在业务项目中使用 jsdoc。...的类型声明定义成 TS 风格,更是支持了在 JSDoc 注释的类型声明中动态引入并解析 TS 类型的能力。...类型(即便不用TS语法也可以)对应的 TS 类型会被自动推断出来并显示、配置了 //@ts-check后可以像 TS 项目一样实时显示类型错误等。...在通常的情况下,ProtoBuf(Protocol Buffers)的设计思想是先定义 .proto 文件,然后使用编译器生成对应的代码(例如 Java 类和 d.ts 类型定义)。

    55510

    TypeScript 3.8 Beta

    与此相似,export type 仅仅提供一个用于类型的导出,在 TypeScript 输出文件中,它也将会被删除。 值得注意的是,类在运行时具有值,在设计时具有类型。它的使用与上下文有关。...由于 JavaScript 文件没有专用的语法来进行类型检查,因此 TypeScript 选择利用 JSDoc。TypeScript 3.8 能理解一些新的 JSDoc 属性标签。...由于每个项目在不同的策略下都可能更好的工作,TypeScript 3.8 在 tsconfig.json 和 jsconfig.json 中添加了一个新的 watchOptions 字段,它可以让使用者告诉编译器...dynamicPriorityPolling,使用动态队列,在该队列中,较少检查不经常修改的文件 useFsEvents(默认),尝试使用操作系统/文件系统原生事件来监听文件更改 useFsEventsOnParentDirectory...,尝试使用操作系统/文件系统原生事件来监听文件、目录的更改,这样可以使用较小的文件监听程序,但是准确性可能较低 watchDirectory,在缺少递归文件监听功能的系统中,使用哪种策略监听整个目录树,

    1.8K30
    领券