ArkTS 语言学习与开发助手,提供语法参考、TypeScript 迁移指导和高性能编程实践
这是一个支持多平台的 ArkTS 语法助手技能,兼容 claude-code、opencode、cursor、trea 等 AI 编码助手。ArkTS 是 OpenHarmony 应用的默认开发语言,在 TypeScript 基础上做了静态类型强化,提升程序稳定性和性能。
- 语法学习:涵盖 ArkTS 基础语法(声明、类型、函数、类、泛型、模块等)
- TypeScript 迁移:详细的 TS 到 ArkTS 迁移指南,包括语法约束、类型系统差异、不兼容特性
- 高性能编程:内存优化、循环优化、数组处理、异常处理等最佳实践
- 编译错误解决:常见编译错误的诊断和修复方案
- 代码示例:丰富的对比示例,展示正确与错误写法
这个技能可以帮助您的AI助手轻松编写ArkTS代码,但如果您也需要自己编写和修改代码,却对DevEco Studio缺少Tab补全功能感到困扰,欢迎在VSCode(及同类IDE)中安装ArkTS语言支持插件:
Note
Naily's ArkTS Support 是一个为VSCode设计的ArkTS语言支持插件,提供了语法高亮、智能补全等功能,让开发者在VSCode中也能获得良好的ArkTS开发体验。
npx skills add https://github.com/SummerKaze/skill-arkts-syntax-assistant.git这是最简单快速的安装方式,会自动下载并配置技能。
- 访问 Releases 页面
- 下载最新版本的压缩包
- 解压到 Claude Code 的技能目录
cd ~/.claude/skills/
git clone https://github.com/SummerKaze/skill-arkts-syntax-assistant.git根据需求选择对应文档:
在 Claude Code 中,当你遇到以下问题时,此技能会自动激活:
- 学习 ArkTS 基础语法
- 从 TypeScript 迁移到 ArkTS
- ArkTS 高性能编程优化
- 解决 ArkTS 编译错误或运行时问题
- HarmonyOS/OpenHarmony 应用开发中的语言相关问题
Q: 如何处理 JSON.parse 返回值?
// 错误
let data = JSON.parse(str);
// 正确
let data: Record<string, Object> = JSON.parse(str);Q: 如何定义对象类型?
// TS 写法(ArkTS 不支持)
type Person = { name: string, age: number }
// ArkTS 写法
interface Person {
name: string;
age: number;
}Q: TypeScript 到 ArkTS 迁移规则速查
| TS 写法 | ArkTS 替代 |
|---|---|
var x |
let x |
any/unknown |
具体类型 |
{n: 42} 对象字面量 |
先定义 class/interface |
[index: T]: U 索引签名 |
Record<T, U> |
A & B 交叉类型 |
interface C extends A, B |
<Type>value 类型断言 |
value as Type |
解构赋值 [a, b] = arr |
逐个访问 arr[0], arr[1] |
for..in |
for 循环或 for..of |
项目提供快速编译脚本(包含依赖安装):
| 平台 | 脚本 | 用途 |
|---|---|---|
| macOS/Linux | scripts/run.sh |
执行 ohpm install + hvigorw assembleApp |
| Windows | scripts/run.ps1 |
执行 ohpm install + hvigorw assembleApp |
使用方式:
# macOS/Linux
bash scripts/run.sh
# Windows PowerShell
.\scripts\run.ps1- 强制静态类型:编译时确定所有类型,减少运行时检查
- 禁止动态对象布局:对象结构在编译时固定,不可运行时修改
- 限制运算符语义:部分运算符行为受限,鼓励清晰代码
- 不支持 Structural typing:当前版本不支持结构化类型
以下在 ArkTS 中禁止使用:
- 全局:
eval - Object:
__proto__、defineProperty、freeze、getPrototypeOf等 - Reflect:
apply、construct、defineProperty等 - Proxy:所有 handler 方法
Copyright (c) 2025 SummerKaze