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

大话 JavaScript(Speaking JavaScript):第二十六章到第三十章

在类 C 语言( Java 和 JavaScript),有两种最常见的括号样式:Allman 样式和 1TBS。...对于构造函数,使用严格模式很重要,因为它可以防止你忘记实例化时使用new操作符。你应该知道你可以在构造函数返回任何对象。有关使用构造函数的更多提示,请参阅实现构造函数的提示。...在前面的代码,@param就是一个例子。 HTML 您可以在 JSDoc 注释自由使用 HTML。例如,显示单词的等宽字体。 类型注释 您可以通过大括号的类型名称来记录实体的类型。...@constructs 记录方法设置实例数据。如果存在这样的方法,则在该类记录。 @lends namePath 指定以下对象文字贡献给哪个类。有两种贡献的方式。...网站上有文档: 模块化:@module,@exports,@namespace 自定义类型(用于虚拟实体,回调,其签名可以由您记录):@typedef,@callback 法律事务:@

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

JSDoc 初探:代码内的文档标记

JSDoc 工具将扫描你的源代码并为您生成一个 HTML 文档网站(当然,即使你不进行生成,其也被大部分浏览器所识别和支持)。JSDoc 的目的是记录 JavaScript 应用程序或库的 API。...假设你想要记录诸如模块、名称空间、类、方法、方法参数等内容。 JSDoc注释通常应该放在记录代码之前。为了被 JSDoc 解析器识别,每个注释必须以 /** 序列开头。...需要注意的是,在JSDoc中标记参数具有默认值并不会改变函数或方法的实际调用方式,你可以只在注释写好标记的默认参数,而不写在代码,反之亦然(君子协定)。...myFunction(name='', type='default') { // 函数实现}加餐:不使用类型别名指明对象内参数例如指明某个函数的config对象内的参数,你可以使用嵌套的@property...- 年龄 */function myFunction(config) { // 函数实现}在上面的示例,我们使用@param标签指明config是一个对象,并且包含两个属性:name和age。

11710

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

JSDoc语法具有多种用途,包括用类型注释值,为函数指定参数和返回类型,为函数提供文档和使用信息,以及类型错误等。...在一个 .js 文件添加JSDoc所述只是注释,通过使用额外的 * 开启一个注释来完成 // Normal Javascript Comment 1 /* Normal Javascript Comment...通过使用 @typedef 指令可以创建一个对象类型。...改进除法函数,我们可以指定如果除数为零则返回错误,并在代码处理这种情况。 /** * Divide two numbers....构造函数创建的所有方法和变量 我们使用 @params 关键字来提供需要传递给构造函数的参数的类型和描述。类的方法与函数的类型方式相同,这在前一节已经介绍过。

46910

JSDoc支持_TypeScript笔记19

笔记 18 二.支持程度 TypeScript 目前(2019/5/12)仅支持部分 JSDoc 标记,具体如下: @type:描述对象 @param(或@arg或@argument):描述函数参数.../a").x; 注意,这种语法是 TypeScript 特有的(JSDoc 并不支持),而 JSDoc 采用 ES Module 引入语法: // a.js /** * @typedef State...: number) => boolean 还可以用@typedef特殊语法(仅 TypeScript 支持,JSDoc 里没有)把对象函数的类型定义整合到一行: /** @typedef {{ prop1...({string=})不适用于对象字面量类型,例如@type {{ a: string, b: number= }}是非法的类型声明,可选属性应该用属性名后缀?...具体的,会对构造函数的this属性访问以及构造函数参数进行检查,并且不允许(不通过new关键字)直接调用构造函数: /** * @constructor * @param {number} data

4K10

TS in JS 实践指北

上面提到的这些,都可以通过 JSDoc 去解决。 你知道的 JSDoc: 国际惯例,先从简单的开始铺垫。...稍微列举下目前我遇到过的问题 •无法支持@private、 @protected这类 tag 修饰,表现在还是在提示给了出来•无法直接对某个函数定义函数重载,需要依靠对象的形式•很多 tag 不支持,...TS in JS with JSDoc 1.丢失出参类型: 标题所述。...由于在vue.d.ts里面,传给Vue的options是一个泛型对象,但我们并不能对一个对象使用泛型,因此需要一个helper的函数承接一下,内容很简单: const vueOptionsTypeHelper...怎么去应用 1.对公共组件和全局变量编写声明文件2.对自定义的函数编写 JSDoc 注释,并优雅的完善它3.对作用域不清晰的的变量、对象等使用 JSDoc 的@type,去指定它的类型 注意事项 1.不要瞎用

4.4K20

检查JavaScript文件_TypeScript笔记18

里存在大量惯用“模式”,所以在默认类型方面相当宽松,主要表现为 3 点: 函数参数默认可选 未指定的类型参数默认any 类型宽松的对象字面量 函数参数默认可选 .js文件里所有函数参数都默认可选,所以允许实参数量少于形参...定义的泛型,若未指定类型参数,就默认any 类型宽松的对象字面量 .ts里,用对象字面量初始化变量的同时会确定该变量的类型,并且不允许往对象字面量上添加新成员,例如: // .ts // obj 类型为...对于没在构造函数定义,或者构造函数类型为undefined或null(此时为any)的属性,其类型为所有赋值右侧值类型的联合 定义在构造函数的属性都认为是一定存在的,其它地方(成员方法)出现的都当作可选的...类声明未出现的属性都是未定义的,访问就报错 构造函数等价于类 另外,在 ES6 之前,JavaScript 里用构造函数代替类,TypeScript 类型系统也能够“理解”这种模式(构造函数等价于...f) { return fs.readFileSync(f); } P.S.实际上,TypeScript 对 CommonJS 模块的支持就是通过这种类型推断来完成的 命名空间推断 .js里,类、函数对象字面量都视为命名空间

2.4K50

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

直到 2011 年,重构后的 JSDoc 3.0 已经可以运行在 Node.js 上 JSDoc 语法举例 定义对象类型: /** * @typedef {object} Rgb * @property..._clock = clock; } } 在实践,多用于配合 jsdoc2md 等工具,自动生成库的 API 文档等。...但前面提到的 TS 的固有问题也困扰着开发者们,直到今年几起标志性事件的发生,将大家的目光拉回 JSDoc,人们惊讶地发现:JSDoc 并没有停留在旧时光。...的类型声明定义成 TS 风格,更是支持了在 JSDoc 注释的类型声明动态引入并解析 TS 类型的能力。...MyPojo * @property {Integer} [id] * @property {String} [name] */ 在转换的方法上,理论上如果能基于 AST 等手段当然更好,但本例

28410

Web 开发人员的文档生成工具【推荐】

你可以使用它记录:命名空间、类、方法、方法参数等。...docdash (example) tui-jsdoc-template (example) 构建工具 JSDoc Grunt plugin JSDoc Gulp plugin 其它工具 jsdoc-to-markdown...它可以将测试代码和用户手册一并集成到文档,支持通过插件添加自定义功能。...有了它,只需在写源码的时候顺手写上一些简单的注释,就可以生成出漂亮的文档了。项目支持大部分主流语言,注释维护起来也比较方便,不需要额外再维护一份文档。...自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS到移动端HTML5到各种框架都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工作想提升自己能力的

2.5K20

9 个超实用的 JavaScript 原生插件工具

5、jsdoc 地址:https://github.com/jsdoc/jsdoc ? 用于 JavaScript 的 API 文档生成器。...如果你需要记录你的个人功能,那么jsdoc是一个很好的工具。生成的文件非常基础,用于文档目的,你可以在短时间内拥有自己的功能文档。...该文档对于新开发人员来说也很棒且易于使用,并且在开始使用jsdoc时不需要太多经验。 特别是如果你在团队工作,它会提高你工作流程的整体生产力,因为你已经定义了自己的功能。...以有限的并发运行多个 Promise 返回和异步函数。 如果你想限制 JavaScript 的 promise 或同时阻止来自服务器的所有请求调用,那么这个库适合你。...这个库使代码在处理 cookie 时更加清晰和可用,你可以使用一个简单的 API 来管理 cookie,其中包括开发人员需要的一切。

1.2K20

JSDoc还需要TypeScript吗

你可以通过使用JSDoc在JavaScript获得TypeScript的所有好处 TypeScript所提供的是一个静态类型系统。这意味着类型信息在运行代码没有影响。...JSDoc 在JavaScript诞生25年多后,JSDoc作为一种注释JavaScript代码的方式被引入。它是一种正式的标记语言,允许IDE在开发者看到一个函数时提供额外的上下文。...最重要的是你要知道,几乎所有你能在.ts文件做的事情,你都能用JSDoc来做。...但这里有几个例子: 带有原生类型的函数参数: /** * @param {string} a * @param {number} b */ function foo(a, b) {} 使用TypeScript...* @param {Window} window */ function foo(element, window) {} /** @type {number[]} */ let years 定义对象字面量和函数

27420

【js】如何正确的写代码注释?

//时间戳日期格式化函数 function formTime(time,isyear){ } 亦或者是这样的?.../* 时间戳日期格式化函数 */ function formTime(time,isyear){ } 简单的变量声明之类的内容可以进行简单注释,但是函数就不能这样做了,要知道注释的作用是一种为了让代码更易读...、易维护、易理解,起到提示的作用的,上面的两个注释都是正确的,但是它起到的作用太低了,在正式工作我们往往会协同开发,这种注释是万万不可的。...自动化生成文档 既然叫文档注释,那么生成个文档也没什么好奇怪的吧, 生成文档的包有很多种,比如jsDoc,apiDoc等等,在这里我使用jsdoc。 安装 输入以下命令进行全局安装。...npm install jsdoc -g 基本使用 jsdoc 文件名 其他的使用方式可以去官网查看 jsdoc 33.js 执行完此命令,会生成一个out文件夹,查看里面的index页面即可,右边侧边栏会显示函数的使用

16520

如何优雅地编写一个高逼格的JS插件?

原型链写法 要开始编写插件就得先了解JS模块化,早期的模块化是利用了函数自执行来实现的,在单独的函数作用域中执行代码可以避免插件定义的变量污染到全局变量,举个栗子,以下代码实现了一个简单随机数生成的插件...Fn下的原型对象。...补充:模块化的发展 早期利用函数自执行实现,在单独的函数作用域中执行代码( JQuery ) AMD:引入 require.js 编写模块化,引用依赖必须提前声明 CMD:引入 sea.js 编写模块化...所以这里我们使用 JSDoc 来创建 API文档,它使用简单,只需要在代码编写规范的注释,即能根据注释自动生成文档,一举多得,十分优雅!...* @param {Array} arr * @param {String} 对象相同的关键字(id) * @return {Array} 返回新数组,eg: ArrayDelSome([{

1K10
领券