arkts-code-linter

ArkTS Code Linter - HarmonyOS NEXT 规范检查工具

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "arkts-code-linter" with this command: npx skills add clmc2025/vignette/clmc2025-vignette-arkts-code-linter

ArkTS Code Linter - HarmonyOS NEXT 规范检查工具

功能概述

本工具基于 华为 HarmonyOS NEXT 官方开发文档 和项目规范,提供全面的 ArkTS 代码检查功能。

核心检查规则

  1. 语言规范检查 (强制)

1.1 严格类型安全

  • 禁止 any 类型:所有变量和函数返回值必须显式声明类型

  • 禁止 unknown 类型:特殊情况需添加注释说明

  • 空安全检查:必须处理 null 和 undefined

  • ESObject 使用规范:仅在与 JS 库交互时使用,使用后立即转换

1.2 语法限制

  • 类字段初始化:必须在声明时或构造函数中初始化

  • 模块化规范:使用 ES6 import /export ,禁止 CommonJS require

  • 类型声明:禁止内联对象字面量作为类型,必须使用具名 interface /type

  • JSON 解析:JSON.parse() 后必须转为显式结构类型

  1. ArkUI 开发规范

2.1 组件化设计

  • 装饰器检查:@Component 、@Entry 使用规范

  • Builder 语法:@Builder 内禁止 return 早退和普通语句块

  • 组件拆分:单个文件不超过 500 行

2.2 状态管理

  • 装饰器选择:@State 、@Prop 、@Link 、@Provide /@Consume 正确使用

  • 状态更新:必须通过赋值更新,禁止直接修改对象属性

2.3 布局与样式

  • 单位规范:使用 vp /fp ,禁止硬编码 px

  • 布局性能:减少 Stack /Flex 嵌套,优先使用 RelativeContainer

  • 列表渲染:必须使用 LazyForEach 并提供唯一 keyGenerator

  1. 性能优化检查

3.1 渲染性能

  • LazyForEach:长列表必须使用懒加载

  • 条件渲染:频繁切换使用 visibility 而非 if/else

  • 图片优化:大图使用 sourceSize 属性

3.2 并发与异步

  • 主线程减负:耗时操作移至 TaskPool 或 Worker

  • 异步规范:使用 Promise 或 async/await

3.3 内存管理

  • 资源释放:aboutToDisappear 中注销监听和定时器

  • 上下文泄漏:禁止持有 AbilityContext 或 UI 组件引用

  1. 项目架构规范

4.1 目录结构

entry/src/main/ets/ ├── pages/ # 页面入口 (@Entry) ├── components/ # 公共 UI 组件 ├── model/ # 数据模型 ├── utils/ # 工具类 ├── service/ # 业务逻辑服务 └── resources/ # 静态资源

4.2 命名规范

  • 类/接口/组件:PascalCase

  • 变量/函数:camelCase

  • 常量/枚举:UPPER_SNAKE_CASE

使用方法

命令行检查

检查单个文件

arkts-linter check src/main/ets/pages/Index.ets

检查整个目录

arkts-linter check src/main/ets/

自动修复可修复的问题

arkts-linter fix src/main/ets/pages/Index.ets

配置规则

在项目根目录创建 .arktslintrc.json :

{ "rules": { "no-any": "error", "no-unknown": "error", "static-method-this": "error", "component-syntax": "error", "indent": ["error", 2], "naming-convention": "error", "proper-decorator-use": "error", "component-root-node": "error", "state-management": "warning", "lazy-for-each": "error", "no-px-unit": "error", "use-vp-fp": "error" }, "ignore": [ "node_modules/", "build/", "oh_modules/**", "*.test.ets" ] }

规则说明

规则名称 描述 严重程度 可修复

no-any 禁止使用 any 类型 error false

no-unknown 禁止使用 unknown 类型 error false

static-method-this 静态方法中禁止使用 this error true

no-untyped-objects 禁止无类型对象字面量 error false

component-syntax 组件语法规范检查 error false

proper-decorator-use 装饰器正确使用 error false

component-root-node 组件根节点规则 error false

state-management 状态管理最佳实践 warning false

lazy-for-each 列表必须使用 LazyForEach error false

no-px-unit 禁止硬编码 px 单位 error true

use-vp-fp 必须使用 vp/fp 单位 error true

indent 缩进规范 error true

naming-convention 命名规范检查 error false

忽略特定代码

// 忽略单行 // @arktslint-ignore no-any const data: any = getData();

// 忽略多行 // @arktslint-ignore no-any, no-unknown const data: any = getData(); const info: unknown = getInfo();

// 忽略整个文件 // @arktslint-ignore-file

参考文档

  • HarmonyOS NEXT 开发文档

  • ArkTS 语言规范

  • ArkUI 开发指南

  • 性能优化最佳实践

许可证

MIT License

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated
Coding

ai-dating

This skill enables dating and matchmaking workflows. Use it when a user asks to make friends, find a partner, run matchmaking, or provide dating preferences/profile updates. The skill should execute `dating-cli` commands to complete profile setup, task creation/update, match checking, contact reveal, and review.

Archived SourceRecently Updated
Coding

clawhub-rate-limited-publisher

Queue and publish local skills to ClawHub with a strict 5-per-hour cap using the local clawhub CLI and host scheduler.

Archived SourceRecently Updated