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 = b | a = b |
+= | 加法赋值 | a += b | a = a + b |
-= | 减法赋值 | a -= b | a = a - b |
*= | 乘法赋值 | a *= b | a = a * b |
/= | 除法赋值 | a /= b | a = a / b |
%= | 取余赋值 | a %= b | a = 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 的类型系统,同时增加了一些特有的装饰器和组件化开发特性。