在鸿蒙Next中,判断类型主要可以通过以下方法实现:
1. 使用 typeof 操作符
用于判断基本数据类型(如 number、string、boolean 等)。
let value: any = "Hello";
if (typeof value === "string") {
console.log("value 是字符串类型");
}
2. 使用 instanceof 操作符
用于检查对象是否为特定类的实例。
class Person {}
let obj = new Person();
if (obj instanceof Person) {
console.log("obj 是 Person 类的实例");
}
3. 使用类型保护函数
通过自定义函数结合类型断言进行类型判断。
function isString(value: any): value is string {
return typeof value === "string";
}
let data: any = "测试";
if (isString(data)) {
console.log(data.length); // 此处 data 被推断为 string 类型
}
4. 使用 Array.isArray()
专用于判断是否为数组类型。
let arr = [1, 2, 3];
if (Array.isArray(arr)) {
console.log("arr 是数组");
}
5. 对联合类型的判断
常见于处理可能是多种类型的变量。
type TypeA = { name: string };
type TypeB = { age: number };
function handleType(input: TypeA | TypeB) {
if ("name" in input) {
console.log(input.name); // 识别为 TypeA
} else {
console.log(input.age); // 识别为 TypeB
}
}
注意事项:
- 在 TypeScript/ArkTS 中,编译时类型检查与运行时类型判断需结合使用。
- 对复杂对象建议使用
instanceof 或属性检查(如 in 操作符)。
根据具体场景选择合适的方法即可。