ArkTS 数据类型详解

数据类型 作用说明 初始化方法 常用使用方法 遍历方法
number 表示整数或浮点数 let num: number = 42; 运算:+ - * / %
转换:num.toString()
比较:num > 10
不适用(基础类型)
string 表示字符串 let str: string = "Hello"; 拼接:str + " world"
查找:str.indexOf("e")
长度:str.length
for (let c of str) {}
boolean 表示布尔值(true 或 false) let flag: boolean = true; 条件判断:if (flag)
取反:!flag
不适用
any 任意类型,关闭类型检查 let x: any = 123; x = "abc"; 动态访问属性、接受任意类型值 不适用
unknown 不确定类型,更安全的 any let value: unknown = "text"; 需类型断言后使用:(value as string).length 不适用
undefined 表示变量未定义 let u: undefined = undefined; 通常用于检测变量是否赋值 不适用
null 表示空值 let n: null = null; 赋初始空对象、清空引用 不适用
void 表示无返回值(通常用于函数) function log(): void { console.log("info"); } 用于返回 undefined 的函数 不适用
never 表示永不返回(函数抛错或无限循环) function fail(): never { throw new Error("fail"); } 常用于错误处理、类型保护中不可达的分支 不适用
Array<T> 泛型数组,存储同类型元素集合 let nums: Array<number> = [1, 2, 3];
let strs: string[] = ["a", "b"];
添加元素:arr.push(4)
访问:arr[0]
长度:arr.length
for...offorEachfor (let i=0; i<arr.length; i++)
Tuple 固定长度、固定类型的数组 let tuple: [string, number] = ["Tom", 30]; 访问:tuple[0]
赋值:tuple[1] = 31
for (let item of tuple) {}
object 任意非基础类型的对象 let obj: object = { name: "Tom" }; 属性访问:obj["name"]
类型判断:typeof obj === "object"
for...inObject.keys(obj).forEach(...)
Map<K, V> 映射集合,支持键值对数据结构 let map = new Map<string, number>(); map.set("a", 1); 获取:map.get("a")
删除:map.delete("a")
判断键:map.has("a")
for...of map
map.forEach((v, k) => {...})
Set<T> 集合,自动去重的元素集合 let set = new Set<number>([1, 2, 3]); 添加:set.add(4)
判断:set.has(3)
删除:set.delete(2)
for...of set
set.forEach((item) => {...})
enum 枚举类型,定义一组命名常量 enum Color { Red, Green, Blue } 获取值:Color.Red
反向映射:Color[0] // "Red"
for (let key in Color) {}(会遍历正反映射)
union 联合类型,表示可以是多种类型之一 `let val: number string = "abc";` 类型判断:typeof val === "string"
条件分支处理
需先判断类型才能处理
literal 字面量类型,指定精确值 `let dir: "left" "right" = "left";` 类型限定:只能是指定值 不适用
interface 定义对象结构、类型约束 interface Person { name: string; age: number; } 接口对象访问:obj.name
函数参数类型限制
for...in 遍历属性名
Object.entries(obj)
type 类型别名,可以组合多个类型 `type ID = number string;` 用于提高可读性、减少重复定义 同基础类型
class 面向对象的类结构,支持继承、方法、访问修饰符等 class User { constructor(public name: string) {} } 实例化:let u = new User("Tom")
方法调用:u.name
可定义返回数组的方法后遍历其返回值
Record<K,V> 构造类型,将所有键映射到特定类型的值 let rec: Record<string, number> = { a: 1, b: 2 }; 属性访问:rec["a"] for (let key in rec) {}
Object.entries(rec).forEach(([k, v]) => {...})
Readonly<T> 创建只读对象或数组 let r: Readonly<{ name: string }> = { name: "Tom" }; 属性无法更改:r.name = "Jack"(报错) object
Partial<T> 构造部分可选属性的类型 let p: Partial<{ name: string; age: number }> = { name: "Tom" }; 属性可选 object
Promise<T> 异步操作结果的占位符 let p: Promise<string> = new Promise((resolve) => resolve("done")); .then()async/await .then(result => {...})
Function 函数类型,定义可调用结构 let fn: (a: number, b: number) => number = (a, b) => a + b; 调用函数:fn(1, 2) 不适用

✅ ArkTS 是基于 TypeScript 的语言,在 OpenHarmony 系统中用于声明式 UI 开发,支持更强的类型系统和系统接口。
✅ 表格内容涵盖了常见的原始类型、对象类型、泛型工具类型、函数类型和异步处理类型。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容