Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第2章:ArkTS基本语法

第2章:ArkTS基本语法

数据类型

基本数据类型

ArkTS作为TypeScript的超集,继承了其丰富的数据类型系统,同时针对HarmonyOS生态进行了扩展优化。

1. 原始类型

  • number: 双精度64位浮点数,支持整数和浮点数
    let decimal: number = 6;
    let float: number = 3.14;
    
  • string: UTF-16字符串,支持模板字符串
    let name: string = "ArkTS";
    let greeting = `Hello ${name}`;
    
  • boolean: 逻辑值true/false
    let isDone: boolean = false;
    
  • null/undefined: 特殊基础类型
    let u: undefined = undefined;
    let n: null = null;
    

2. 特殊类型

  • any: 动态类型(慎用)
    let dynamicValue: any = 4;
    dynamicValue = "可以是字符串";
    
  • void: 无返回值(主要用于函数)
  • never: 永不存在的值(用于异常处理等场景)

复合数据类型

1. 数组

两种声明方式:

let list1: number[] = [1, 2, 3];
let list2: Array<number> = [1, 2, 3]; // 泛型语法

2. 元组(Tuple)

固定长度和类型的数组:

let x: [string, number];
x = ["hello", 10]; // 正确
x = [10, "hello"]; // 错误

3. 枚举(Enum)

数值枚举:

enum Color {Red, Green, Blue}
let c: Color = Color.Green; // 1

字符串枚举:

enum Direction {
  Up = "UP",
  Down = "DOWN"
}

对象类型

1. Object类型

declare function create(o: object | null): void;

create({ prop: 0 }); // 正确
create(42); // 错误

2. 类型断言

两种语法形式:

let someValue: any = "this is a string";
let strLength1: number = (<string>someValue).length;
let strLength2: number = (someValue as string).length;

ArkTS特有类型

1. @Component装饰器类型

@Component
struct MyComponent {
  @State message: string = "Hello ArkUI"
}

2. 资源引用类型

Image($r('app.media.icon'))
Text($r('app.string.hello_world'))

类型检查与推断

1. 类型推断

let x = 3; // 自动推断为number类型
x = "hello"; // 报错

2. 联合类型

let padding: string | number;
padding = "20px"; // 正确
padding = 20;     // 正确

最佳实践建议

  1. 优先使用类型注解而非any类型
  2. 对复杂数据结构使用接口(interface)定义
  3. 善用类型推断减少冗余代码
  4. 对HarmonyOS特有组件使用ArkTS提供的装饰器类型

注意:ArkTS在保留TypeScript类型系统的同时,对UI组件相关的类型做了特殊增强,开发者需要特别注意组件属性类型的定义方式。

Last Updated:: 5/22/25, 11:39 AM