你会了吗 HarmonyOS Next 项目级别的注释规范

简介: 你会了吗 HarmonyOS Next 项目级别的注释规范

HarmonyOS Next 项目级别的注释规范

程序员箴言

我最讨厌世界上的两种人:

  1. 第一种是不写注释的人
  2. 第二种是让我写注释的人

前言

随着HarmonyOS NEXT的发展加快,不少的公司已经陆续加大了资源来开发软件项目。那么伴随项目的发展,项目团队也需要按照一定

的规范来编写项目注释或者代码的说明文档。

我认为编写项目注释或者代码的说明文档最小的代价就是 直接通过编写注释的方式来实现代码的使用文档。

目前主流的IDE都会支持 jsDoc 或者 TypeDoc。 我们按照规定的格式编写代码注释,便能获得以下好处:

当我们想要调用 全局函数 px2vp时,提示工具会很清晰的给我展现出相关的使用说明。另外,如果是编写一个工具类库,还能基于相关工具生成好看的说明文档。

Person.ets

/**
 * 一个工具人类
 *
 * @since 11
 */
export class Person {
  /**
   * 年龄
   */
  age: number = 18
  /**
   *
   * 计算两个年龄相加的和
   * @param {number} n1 年龄1
   * @param {number} n2 年龄2
   * @returns {number} 总年龄
   */
  calcAge(n1: number, n2: number) {
    return n1 + n2
  }
}

DevEco Studio 自带的语法提示

jsDoc提供了对 常量、类、函数、接口、枚举等的修饰符,一般情况下不需要主动添加,因为 DevEco Studio 可以自动识别

@constant @class @function @interface @enmu 等

枚举

并且,在你引入代码提示的时候,也可以直观的观察这里来判断它是什么类型


常见代码提示修饰符

如图,如果我们想要实现上图右侧的一些语法提示功能,那么就需要自己编写合适的代码提示修饰符了

通过编写一个类来演示,首先我们提供以下基本结构

export class Person {
  age: number = 18
  protected static async calcAge4(n1: number, n2: number) {
    return n1 + n2
  }
  calcAge1(n1: number, n2: number) {
    return n1 + n2
  }
  async calcAge2(n1: number, n2: number) {
    return n1 + n2
  }
  protected async calcAge3(n1: number, n2: number) {
    return n1 + n2
  }
}

快速生成特定的注释

如我们想要给 Person添加一些备注说明,那么我们不能使用以下这种注释

// 这个单行注释不行
/* 这个普通的多行注释也不行 */

我们只能使用这种

/**
*  这个是OK的
*/

你可以在想要修饰的代码上方 输入 /** + tab 开快速生成

在带有参数的函数上方,它会自动添加参数的修饰符,包括返回值

@param 和 @returns

@param 修饰函数的形参

@returns 修饰返回值

@async

@async 修饰 异步函数

@public

@public 公开

@protected 受保护

@private 私有

@static

其他的jsDoc规范的修饰符总览

修饰符 含义
@abstract 表示一个抽象的成员,不能被直接实例化。
@access 用于指定成员的访问级别。
@alias 定义一个别名。
@async 表示一个异步函数。
@augments 指示一个类继承自另一个类。
@author 作者信息。
@borrows 表示从另一个模块借用的函数或属性。
@callback 表示一个回调函数。
@class 用于定义一个类。
@classdesc 类的描述。
@constant 表示一个常量。
@constructs 指示一个函数是构造函数。
@copyright 版权信息。
@default 默认值。
@deprecated 表示已弃用的成员。
@description 描述信息。
@enum 定义一个枚举。
@event 表示一个事件。
@example 示例代码。
@exports 用于指定要导出的成员。
@external 表示外部模块的成员。
@file 文件信息。
@fires 表示触发的事件。
@function 定义一个函数。
@generator 表示一个生成器函数。
@global 表示全局成员。
@hideconstructor 隐藏构造函数。
@ignore 表示忽略的部分。
@implements 表示实现的接口。
@inheritdoc 继承文档说明。
@inner 内部成员。
@instance 实例成员。
@interface 定义一个接口。
@kind 类型种类。
@lends 将属性借给另一个对象。
@license 许可证信息。
@listens 表示监听的事件。
@member 成员。
@memberof 属于某个对象的成员。
@mixes 混合多个类的特性。
@mixin 定义一个混入。
@module 定义一个模块。
@name 名称。
@namespace 命名空间。
@override 表示重写的成员。
@package 包信息。
@param 函数参数说明。
@private 私有成员。
@property 属性。
@protected 受保护的成员。
@public 公共成员。
@readonly 只读属性。
@requires 表示依赖的模块。
@returns 函数返回值说明。
@see 参考信息。
@since 从某个版本开始。
@static 静态成员。
@summary 摘要信息。
@this 当前对象。
@throws 抛出的异常说明。
@todo 待办事项。
@tutorial 教程信息。
@type 类型说明。
@typedef 类型定义。
@variation 变化情况。
@version 版本信息。
@yields 生成的值说明。

DevEco Studio 支持自定义修饰符

DevEco Studio 是支持自定义修饰符的,比如

虽然是可以随便自己设定,但是为了团队开发保持一直,还是建议按照一定的规范来编写。如 遵循 上述jsDoc的一些规范

DevEco Studio 快速生成说明文档

DevEco Studio NEXT Beta1(5.0.3.814)

  • 当前支持对工程或目录下.ets/.ts/.js/.md格式文件生成ArkTSDoc文档。
  • 文件中export的变量、方法、接口、类等将生成相应的ArkTSDoc文档,未export的对象不支持生成。
  • 若选择对工程/目录整体导出ArkTSDoc文档,生成后的ArkTSDoc文档目录和原目录结构一致。


参考链接

  1. @use JSDoc
  2. 生成ArkTSDoc文档
目录
相关文章
|
3天前
|
人工智能 JavaScript API
【HarmonyOS NEXT+AI】问答03:找不到DevEco Studio Cangjie Plugin下载链接?
本文针对学员在“HarmonyOS NEXT+AI大模型打造智能助手APP(仓颉版)”课程中提出的问题进行解答:为何无法在华为开发者社区官网找到DevEco Studio Cangjie Plugin下载链接。文中详细介绍了Cangjie Plugin的功能及获取方式,包括STS和Canary版本的申请流程,并提供了学习仓颉编程语言的资源与建议。对于普通开发者,STS版本是当前首选;同时,通过课程与官方教程,可快速掌握仓颉语言核心语法及API,助力开发HarmonyOS NEXT AI智能助手应用。
25 3
【HarmonyOS NEXT+AI】问答03:找不到DevEco Studio Cangjie Plugin下载链接?
|
20天前
HarmonyOS NEXT - @Prop和@Link
本示例介绍了`@Prop`和`@Link`装饰器在父子组件间的数据同步机制。`@Prop`实现单向数据绑定,子组件可修改本地值,但不会同步回父组件;父组件数据更新时会覆盖子组件的本地更改。`@Link`实现双向绑定,子组件与父组件数据共享且相互影响。 **限制条件:** - `@Prop`变量深拷贝时可能丢失复杂类型。 - `@Link`不可用于`@Entry`组件,禁止本地初始化,类型需与数据源一致。 **支持类型:** - `@Prop`支持基础类型、对象、数组、`Date`及联合类型,不支持`any`。 - 数据源与`@Prop`类型需匹配,包括简单类型、数组项及对象属性。
80 41
|
19天前
|
存储 SQL 关系型数据库
HarmonyOS NEXT - RelationalStore关系型数据库
关系型数据库对应用提供通用的操作接口,底层使用SQLite作为持久化存储引擎,支持SQLite具有的数据库特性,包括但不限于事务、索引、视图、触发器、外键、参数化查询和预编译SQL语句。
79 27
|
19天前
|
开发者
HarmonyOS NEXT - @Provide和@Consume
@Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,@Provide和@Consume摆脱参数传递机制的束缚,实现跨层级传递。
77 21
|
19天前
|
存储 缓存 搜索推荐
HarmonyOS NEXT - Preferences用户首选项
- 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。 - Preferences会将该数据缓存在内存中,当用户读取的时候,能够快速从内存中获取数据。Preferences会随着存放的数据量越多而导致应用占用的内存越大,因此,Preferences不适合存放过多的数据。
72 19
|
20天前
HarmonyOS NEXT - @State状态变量
ArkUI 是一种声明式 UI 框架,通过状态驱动 UI 更新。@State 装饰的变量用于管理组件内部状态,具有以下特点:私有性(仅组件内访问)、必须初始化、生命周期与组件一致。它支持单向(与 @Prop)和双向(与 @Link、@ObjectLink)数据同步。状态改变时,绑定的 UI 会自动刷新。注意:@State 不支持 Function 类型,不能在 build 中修改状态变量。代码示例中展示了通过 @State 管理按钮点击计数的状态更新机制。
70 16
|
11天前
|
存储 安全 算法
鸿蒙NEXT如何保证应用安全:详解鸿蒙NEXT数字签名和证书机制
本文对鸿蒙NEXT公开资料进行了深入分析和解读,梳理了鸿蒙单框架应用的签名机制,拆解每一步的实操过程和背后的实现原理,并对源码分析整理签名的校验机制。从中管中窥豹,探究鸿蒙系统的安全设计思路,给从事鸿蒙研发的同学提供一些借鉴。
81 3
|
9天前
|
缓存 开发工具 开发者
鸿蒙NEXT开发App相关工具类(ArkTs)
这段代码展示了一个名为鸿蒙NEXT开发 `AppUtil` 的工具类,主要用于管理鸿蒙应用的上下文、窗口、状态栏、导航栏等配置。它提供了多种功能,例如设置灰阶模式、颜色模式、字体类型、屏幕亮度、窗口属性等,并支持获取应用包信息(如版本号、包名等)。该工具类需在 UIAbility 的 `onWindowStageCreate` 方法中初始化,以便缓存全局变量。代码由鸿蒙布道师编写,适用于鸿蒙系统应用开发,帮助开发者更便捷地管理和配置应用界面及系统属性。
|
20天前
|
开发者 容器
HarmonyOS NEXT - @CustomDialog自定义弹窗
CustomDialog 是一个用于实现自定义弹窗的工具,适用于广告、中奖提示、警告信息、软件更新等用户交互场景。通过 `CustomDialogController` 类可控制弹窗的显示与隐藏。开发者可配置多种选项,如对齐方式、偏移量、蒙层颜色、动画效果等,支持模态与非模态窗口,并可通过装饰器 `@CustomDialog` 定义弹窗界面。示例代码展示了如何创建欢迎弹窗及响应用户操作,灵活满足不同需求。
66 13
|
5天前
|
前端开发 API 开发工具
一年撸完百万行代码,企业微信的全新鸿蒙NEXT客户端架构演进之路
本文将要分享的是企业微信的鸿蒙Next客户端架构的演进过程,面对代码移植和API不稳定的挑战,提出了DataList框架解决方案。通过结构化、动态和认知三重熵减机制,将业务逻辑与UI解耦,实现数据驱动开发。采用MVDM分层架构(业务实体层、逻辑层、UI数据层、表示层),屏蔽系统差异,确保业务代码稳定。
54 0