harmony 鸿蒙ArkCompiler子系统Changelog

  • 2023-10-30
  • 浏览 (376)

ArkCompiler子系统Changelog

cl.ArkCompiler.1 ArkTS语法检查工具变更

OpenHarmony SDK版本4.0.10.10/11相比4.0.10.8,ArkTS语法检查工具所涉及的规则有变更,以下规则涉及到的部分代码场景将报错。

**说明: ** 此变更仅为工具能力增强,使原先无法检查的语法规则可被工具检查覆盖,涉及的规则并非新增规则。

规则arkts-no-classes-as-obj

将导入的class作为变量使用,示例代码如下。

// module1.ets
export class C {}

// module2.ets
import { C } from './module1'

let c = C  // error: arkts-no-class-as-obj

变更影响

开发者需要适配代码,否则将导致编译失败。

关键的接口/组件变更

ArkTS语法检查工具变更。

适配指导

不符合ArkTS语法的文件需要进行适配修改,报错规则的具体说明和修改方式请参考适配指导案例

规则arkts-strict-typing

X|undefined类型赋值给.ets中X类型的实体,示例代码如下。

// module.ets
function foo(a: number) {
  return a + 1
}

function bar(x: number): number|undefined {
  return x > 0 ? x : undefined
}

foo(bar(-123))  // error: arkts-strict-typing

X|null类型赋值给.ets中X类型的实体,示例代码如下。

// module.ets
function foo(a: number) {
  return a + 1
}

function bar(x: number): number|null {
  return x > 0 ? x : null
}

foo(bar(-123))  // error: arkts-strict-typing

变更影响

开发者需要适配代码,否则将导致编译失败。

关键的接口/组件变更

ArkTS语法检查工具变更。

适配指导

不符合ArkTS语法的文件需要进行适配修改,报错规则的具体说明和修改方式请参考适配指导案例

规则arkts-no-ts-deps

在ts文件中importets文件中的实体,示例代码如下。

// lib.ts
export class C {}


// module.ets
import { C } from './lib'

变更影响

开发者需要适配代码,否则将导致编译失败。

关键的接口/组件变更

ArkTS语法检查工具变更。

适配指导

不符合ArkTS语法的文件需要进行适配修改,报错规则的具体说明和修改方式请参考适配指导案例

cl.ArkCompiler.2 ArkTS语法规则变更

增加ArkTS语法规则等级,分为两个级别:错误(error)、警告(warning)。

  • 错误: 必须要遵从的约束。如果不遵从该约束,将会导致程序编译失败。
  • 警告: 推荐遵从的约束。尽管现在违反该约束不会影响编译流程,但是在将来,违反该约束可能将会导致程序编译失败。

从4.0.10.11起,规则arkts-no-definite-assignmentarkts-no-decorators-except-arkui等级降为警告,不再阻塞工程编译,代码中使用ESObject会产生警告。

同时,ArkTS语法支持以下特性:

tuplekeyoffor-of、在数组场景下使用展开符、重导出、模块名以.js为后缀、readonlyEncodeDecodeParesHexOctetArray.isArrayObject.entriesObject.keysObject.valuesObject.hasOwnObject.hasOwnPropertyNamesReflect.getReflect.setReflect.hasReflect.ownKeysReflect.setSymbol.iterator、Utility类型中的RequiredReadonly.

变更影响

开发者无需适配代码,无兼容性影响。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙1.0.0 (2022/03/09)

harmony 鸿蒙1.0.0 (2022/03/09)

harmony 鸿蒙OpenHarmony Docker镜像

harmony 鸿蒙OpenHarmony Docker Image

harmony 鸿蒙Legal Notices

harmony 鸿蒙OpenHarmony Project

harmony 鸿蒙IDL Specifications and User Guide (for System Applications Only)

harmony 鸿蒙Application Development

harmony 鸿蒙OAID Service

harmony 鸿蒙AI

0  赞