HarmonyOS 鸿蒙Next ets和 deveco 是否支持全局 types

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

HarmonyOS 鸿蒙Next ets和 deveco 是否支持全局 types 我创建了一个 d.ts,里面定义了一个:

declare namespace Uba {}

然后我在业务中使用 Uba.xxx,编辑器提示我找不到 Uba,但是有相关快速修复,让我添加我的 d.ts,说明编辑器已经检索到了 Uba 相关的 d.ts 了。

于是我点击 add missing types ,随即就在模块的 build-profile.json5 中增加了下面这一行。

"buildOption": {
  "arkOptions": {
    "types": [
      "./src/main/ets/core/event-type"
    ]
  }
},

编辑器中,可以无导入的智能提示,说明全局 types 已经正常工作了。

但是在运行到真机设备的时候,提示我:

> hvigor ERROR: Failed :entry:default@CompileArkTS...

> hvigor ERROR: ArkTS Compiler Error

1 ERROR: ArkTS:ERROR File: /Users/YangYongAn/Work/yzone-full/uba_hos/uba/src/main/ets/core/tools.ets:3:32

  Cannot find namespace 'Uba'.

于是我修改我的 d.ts,在 namespace 前面增加了 export 导出。

因为在 ts 中,有 export 标识的,会认为是模块,业务中代码随即报错,业务使用中,需要显式的 import

使用上倒是没有什么问题,但是感觉编辑器和编译器的 ts 设置不能自洽。希望能支持全局声明。


更多关于HarmonyOS 鸿蒙Next ets和 deveco 是否支持全局 types的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

自己顶顶

更多关于HarmonyOS 鸿蒙Next ets和 deveco 是否支持全局 types的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next的ets(Extended TypeScript)和Deveco Studio目前支持全局TypeScript类型定义。在开发过程中,开发者可以通过在项目中创建.d.ts文件来定义全局类型,这些类型可以在整个项目中共享和使用。Deveco Studio作为鸿蒙应用的开发工具,提供了对TypeScript的良好支持,包括代码提示、类型检查和自动补全等功能,帮助开发者更高效地编写和维护代码。

在HarmonyOS鸿蒙Next中,ets(Extended TypeScript)和Deveco Studio(开发工具)目前不支持全局TypeScript类型声明。开发者需要在每个模块或文件中显式导入所需的类型定义,以确保类型安全性和代码的可维护性。这种设计有助于避免全局命名空间污染,并促进模块化开发。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!