HarmonyOS鸿蒙Next中省略public、private、句末分号是否是好的实践?

HarmonyOS鸿蒙Next中省略public、private、句末分号是否是好的实践? 初学者提问

省略更好还是全部写更好?

6 回复

【背景知识】

ArkTS是在保持TypeScript基本语法风格的基础上,进一步强化静态检查和分析。可参考ArkTS编码规范,其中部分规则筛选自《OpenHarmony应用TS&JS编程指南》,为ArkTS语言新增的语法添加了规则,旨在提高代码可读性、执行性能。

【解决方案】

ArkTS编码规范建议添加类属性的可访问修饰符:ArkTS提供了private, protected和public可访问修饰符。默认情况下,属性的可访问修饰符为public。选取适当的可访问修饰符可以提升代码的安全性和可读性。注意:如果类中包含private属性,无法通过对象字面量初始化该类。

根据《OpenHarmony JS通用编程规范》规则2.10:表达式语句须以分号结尾。

【总结】

关于更多ArkTS编码指南可以参考ArkTS编码规范

更多关于HarmonyOS鸿蒙Next中省略public、private、句末分号是否是好的实践?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


分号可选,保持统一即可

但是推荐保留

更传统、更严谨,可以避免 ASI 带来的少数边界问题,适合对稳定性要求高的项目。

访问修饰符使用规范

必须显式声明访问控制

禁止省略public/private修饰符,默认属性为public,但显式声明可提高可读性

//错误:
class C {

    count: number = 0 // 缺少private修饰符

    getCount() { return this.count }

}

//正确:
class C {

    private count: number = 0

    public getCount(): number {

        return this.count

    }

}

导出类时若包含private属性,必须通过单例模式访问;模块对外暴露的接口建议使用public修饰符

分号使用规范

语句结尾必须使用分号;单行变量声明必须加分号

//错误:
let a = 10, b = 20 // 多变量声明在同一行

//正确示例:
let a = 10;
let b = 20;

for循环条件表达式必须用分号分隔;do-while循环结尾必须有分号

建议写,明确一条语句的结束。

起点太松了,后续学习其它语言时,会不太适应。

仅个人观点

在HarmonyOS鸿蒙Next中,省略public、private和句末分号是ArkTS的语法特性,符合其基于TypeScript的设计规范。ArkTS默认成员为public,支持通过访问修饰符显式控制可见性,但允许省略冗余语法。句末分号在多数情况下可选,依赖自动分号插入机制。这种设计简化了代码结构,提升了开发效率,是推荐的实践方式。

在HarmonyOS Next中,省略public、private以及句末分号是符合现代编程实践的,尤其适用于ArkTS语言。ArkTS基于TypeScript,语法上允许省略这些元素以提高代码简洁性和可读性。

  • 省略public/private:ArkTS默认类成员是public,除非显式声明为private。省略public是常见的做法,而private建议保留以明确访问权限。
  • 省略分号:ArkTS支持自动分号插入(ASI),因此句末分号可省略,但需注意避免因换行导致的歧义。

对于初学者,建议先遵循完整语法以巩固基础,熟练后可逐步采用省略方式。最终选择应基于团队规范和代码一致性需求。

回到顶部