Skip to content

ArkTS基本知识

变量声明

ArkTS 支持以下变量声明方式:

  • let: 声明可变变量
  • const: 声明常量
ts
let name: string = "Hello";
const MAX_COUNT: number = 100;

基本数据类型

ArkTS 支持以下基本数据类型:

  • number: 数字类型
  • string: 字符串类型
  • boolean: 布尔类型
  • null: 空值
  • undefined: 未定义
  • void: 无返回值
  • any: 任意类型
  • Array: 数组类型
  • object: 对象类型
ts
let num: number = 42;
let str: string = "ArkTS";
let isValid: boolean = true;
let nums: number[] = [1, 2, 3];

运算符

算术运算符

运算符描述示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余a % b
++自增a++ 或 ++a
--自减a-- 或 --a

比较运算符

运算符描述示例
==相等a == b
===严格相等a === b
!=不相等a != b
!==严格不相等a !== b
>大于a > b
<小于a < b
>=大于等于a >= b
<=小于等于a <= b

逻辑运算符

运算符描述示例
&&逻辑与a && b
||逻辑或a || b
!逻辑非!a

赋值运算符

运算符描述示例等价形式
=赋值a = ba = b
+=加法赋值a += ba = a + b
-=减法赋值a -= ba = a - b
*=乘法赋值a *= ba = a * b
/=除法赋值a /= ba = a / b
%=取余赋值a %= ba = a % b

位运算符

运算符描述示例
&按位与a & b
|按位或a | b
^按位异或a ^ b
~按位非~a
<<左移a << b
>>右移a >> b
>>>无符号右移a >>> b

控制语句

条件语句

ts
if (condition) {
    // 代码块
} else if (condition2) {
    // 代码块
} else {
    // 代码块
}

switch (expression) {
    case value1:
        // 代码块
        break;
    case value2:
        // 代码块
        break;
    default:
        // 代码块
}

循环语句

ts
// for 循环
for (let i = 0; i < 5; i++) {
    // 代码块
}

// while 循环
while (condition) {
    // 代码块
}

// do-while 循环
do {
    // 代码块
} while (condition);

// for...of 循环(遍历可迭代对象)
for (const item of items) {
    // 代码块
}

// for...in 循环(遍历对象属性)
for (const key in object) {
    // 代码块
}

函数

函数声明

ts
// 基本函数
function add(a: number, b: number): number {
    return a + b;
}
// 箭头函数
const multiply = (a: number, b: number): number => a b;
// 可选参数
function greet(name: string, age?: number): string {
    return age ? `Hello ${name}, you are ${age}` : `Hello ${name}`;
}
// 默认参数
function welcome(name: string = "Guest"): string {
    return `Welcome ${name}`;
}

ts
class Person {
    // 属性
    private name: string;
    protected age: number;
    // 构造函数
    constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
    }
    // 方法
    public sayHello(): void {
        console.log(`Hello, I'm ${this.name}`);
    }
    // getter
    get personName(): string {
        return this.name;
    }
    // setter
    set personName(name: string) {
        this.name = name;
    }
}

接口

ts
interface Vehicle {
    brand: string;
    model: string;
    year?: number;
    start(): void;
    stop(): void;
}

class Car implements Vehicle {
    brand: string;
    model: string;
    constructor(brand: string, model: string) {
        this.brand = brand;
        this.model = model;
    }
    start(): void {
        console.log("Car started");
    }
    stop(): void {
        console.log("Car stopped");
    }
}

装饰器

ArkTS 支持使用装饰器来修改类、方法、属性的行为:

ts
// 类装饰器
@Component
class MyComponent {
    // ...
}

// 属性装饰器
class Example {
    @State count: number = 0;
    @Prop title: string = "";
}

// 方法装饰器
class Calculator {
    @Log
    add(a: number, b: number): number {
        return a + b;
    }
}

以上内容涵盖了 ArkTS 的主要语法特性。ArkTS 作为 TypeScript 的超集,继承了 TypeScript 的类型系统,同时增加了一些特有的装饰器和组件化开发特性。