HarmonyOS 鸿蒙Next 原生应用开发-从TS到ArkTS的适配规则(四)

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 原生应用开发-从TS到ArkTS的适配规则(四) 一、不支持以#开头的私有字段

规则:arkts-no-private-identifiers

级别:错误

ArkTS不支持使用#符号开头声明的私有字段。改用private关键字。

TypeScript

class C {
  #foo: number = 42
}

ArkTS

class C {
  private foo: number = 42
}

二、类型、命名空间的命名必须唯一

规则:arkts-unique-names

级别:错误

类型(类、接口、枚举)、命名空间的命名必须唯一,且与其他名称(例如:变量名、函数名)不同。

TypeScript

let X: string
type X = number[] // 类型的别名与变量同名

ArkTS

let X: string
type T = number[] // 为避免名称冲突,此处不允许使用X

三、使用let而非var

规则:arkts-no-var

级别:错误

let关键字可以在块级作用域中声明变量,帮助程序员避免错误。因此,ArkTS不支持var,请使用let声明变量。

TypeScript

function f(shouldInitialize: boolean) {
  if (shouldInitialize) {
     var x = 'b';
  }
  return x;
}

console.log(f(true)); // b
console.log(f(false)); // undefined

let upperLet = 0;
{
  var scopedVar = 0;
  let scopedLet = 0;
  upperLet = 5;
}
scopedVar = 5; // 可见
scopedLet = 5; // 编译时错误

ArkTS

function f(shouldInitialize: boolean): string {
  let x: string = 'a';
  if (shouldInitialize) {
    x = 'b';
  }
  return x;
}

console.log(f(true)); // b
console.log(f(false)); // a

let upperLet = 0;
let scopedVar = 0;
{
  let scopedLet = 0;
  upperLet = 5;
}
scopedVar = 5;
scopedLet = 5; //编译时错误

本文根据HarmonyOS NEXT Developer Beta1官方公开的开发文档整理而成。


更多关于HarmonyOS 鸿蒙Next 原生应用开发-从TS到ArkTS的适配规则(四)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 原生应用开发-从TS到ArkTS的适配规则(四)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 原生应用开发-从TS到ArkTS的适配规则(四)

在HarmonyOS鸿蒙Next原生应用开发中,从TypeScript(TS)到ArkTS的适配主要涉及语言特性和框架接口的转换。以下是从TS到ArkTS适配的关键规则:

  1. 类型系统:ArkTS基于TypeScript扩展,但增加了一些特定于鸿蒙系统的类型。确保你的类型定义与ArkTS的类型系统兼容,特别是针对鸿蒙系统特有的数据类型和接口。

  2. 组件化开发:ArkTS强调组件化,与TS的传统开发模式有所不同。需要将原有的TS代码重构为ArkTS的组件结构,利用ArkTS提供的组件化特性进行开发。

  3. 生命周期管理:ArkTS组件有自己的生命周期,与TS中的类或对象生命周期不同。需要按照ArkTS的生命周期方法(如onCreateonDestroy等)来管理组件的状态和行为。

  4. API适配:部分TS中使用的API在ArkTS中可能不可用或需要替换为鸿蒙系统提供的API。确保所有API调用都符合鸿蒙系统的规范。

  5. 编译与打包:ArkTS有特定的编译和打包流程,需要使用鸿蒙系统提供的工具链进行构建。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部