HarmonyOS 鸿蒙Next 如何使用 index d ts 文件

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

HarmonyOS 鸿蒙Next 如何使用 index d ts 文件 我需要在ccmini内的ets文件中引用AudioEngine中的napi接口,这个怎么使用?

我们引用关系如图,会报错,错误如图,另外改成import type CCMini后会报’CCMini’ cannot be used as a value because it was imported using ‘import type’.改成import type{CCMini}会直接标红Module ‘"…/…/…/cpp/types/libaudioengine/index"’ has no exported member ‘CCMini’. <tsCheck>

报错:

image.png

引用1:

image.png

引用2:

image.png

oh-package文件:

image.png

index.d.ts文件:

image.png

对应napi文件声明:

image.png


更多关于HarmonyOS 鸿蒙Next 如何使用 index d ts 文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
主要场景: CC.har 引入 Engine.har ,其中Engine.har 包含NAPI接口,在CC的模块中使用Engine.so的接口
  1. 创建 生成 Engine.har

  2. 创建, File -> new -> module -> 选择模板 Static Library

输入模块名称(Engine)后,选择 Enable native ;会创建带有Native 接口的demo

  1. 在生成的Engine模块下,在了路径 src.main.cpp.types下会有相关NAPI的相关配置文件

  2. CMakeLists.txt 为c++ 相关编译配置

typses 为相关native打包的配置声明

oh-package.json5中 name为编译后的 so文件名称 ,(此处打包的为 libengine.so ,后面引入的也是以此名称引入)

  1. { “name”: “libengine.so”, “types”: “./index.d.ts”, “version”: “”, “description”: “Please describe the basic information.”}

  2. types为 napi接口的声明文件。为c++相关的接口入口

  3. 在Engine模块中使用Native接口,在模块级的oh-package.json5 中,导入依赖的so。“dependencies”: { “libengine.so”: “file:./src/main/cpp/types/libengine”}

  4. 然后在Engine模块中的相关代码中就可以进行

import testNapi from ‘libengine.so’;

  1. 进行生成har包 Build -> Make module {$harName}

  2. 生产的har包的路径 build -> default -> outputs -> default -> Engine.har

  3. 生成的har包 可以进行上传发布到ohos仓库

  4. 在CC的模块中进行引入Engine.har

  5. 创建, File -> new -> module -> 选择模板 Static Library

  6. 初入模块名称(CC)后,选择 Enable native ;会创建带有Native 接口的demo

  7. 引入 Engine.har

  8. 安装HAR包有两种方式:

  • ohos仓库安装(需先将HAR包发布到ohos仓库)

  • 本地HAR安装(在Terminal窗口中运行ohpm install XXX.har)

  • 将Engine.har放到CC模块的libs文件夹下

  • 在模块的 oh-package.json5中添加依赖

  • 进行 ohpm install

  1. 使用Engine.har包中的napi

  2. 在ets文件中进行import so文件(上面生成的so名称为 libengine.so ; 在引入的oh_modules目录下 enginehar解压的 libs目录下会有其包含的so名称)

  3. 在ets里可以进行直接使用c++的接口函数

hilog.info(0x0000, ‘testTag engine’, ‘Test NAPI 2 + 3 = %{public}d’, engineApi.add(2, 3));

更多关于HarmonyOS 鸿蒙Next 如何使用 index d ts 文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,index.d.ts文件通常用于TypeScript项目中,用于定义模块的类型声明。index.d.ts文件可以确保在使用TypeScript开发时,能够获得类型检查和代码提示等特性。

  1. 创建index.d.ts文件:在项目的根目录或需要声明类型的目录下,创建一个名为index.d.ts的文件。

  2. 编写类型声明:在index.d.ts文件中,编写模块的类型声明。例如,假设你有一个模块myModule,你可以在index.d.ts中这样声明:

    declare module 'myModule' {
        export function myFunction(): void;
        export const myVariable: string;
    }
  3. 引用模块:在TypeScript文件中引用该模块时,TypeScript会根据index.d.ts中的声明进行类型检查和提示。

    import { myFunction, myVariable } from 'myModule';
    myFunction();
    console.log(myVariable);
  4. 自动类型推断:如果index.d.ts文件放置在正确的位置,TypeScript编译器会自动识别并使用该文件中的类型声明。

  5. 模块解析:TypeScript会根据tsconfig.json中的配置来解析模块路径,确保index.d.ts文件能够被正确识别。

通过使用index.d.ts文件,你可以在HarmonyOS鸿蒙Next项目中为JavaScript模块提供类型支持,从而提升开发效率和代码质量。

在HarmonyOS(鸿蒙Next)中,index.d.ts文件通常用于定义TypeScript的类型声明。要使用index.d.ts文件,可以按照以下步骤操作:

  1. 创建文件:在项目根目录或src目录下创建index.d.ts文件。
  2. 定义类型:在index.d.ts中编写类型声明,例如模块、接口或全局变量。
  3. 引用类型:在TypeScript文件中通过import或直接使用全局类型来引用index.d.ts中定义的类型。
  4. 配置tsconfig.json:确保tsconfig.json中的typeRootsinclude字段包含index.d.ts文件路径。

这样,TypeScript编译器会自动识别并使用index.d.ts中的类型声明。

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