如何将WebAssembly函数导入TypeScript?

雅各布·波林

我有一个用TypeScript编写的现有项目,我正在尝试导入WebAssembly模块以替换某些功能。

通过提取将.wasm加载到.js文件的逻辑,我设法成功导入了WebAssembly模块。这是它自己的TypeScript模块,并导入到要使用WebAssembly函数的.ts文件中。

为了演示,我在wasm中做了一个简单的添加功能。

在使用AssemblyScript编译为.wasm的.ts中:

export function add(a: i32, b: i32): i32 {
  return a + b;
}

在.js文件中:

export async function loadWasm() {
  const imports = {}; // Omitted the contents since it's most likely irrelevant
  const module = await 
  WebAssembly.instantiateStreaming(fetch('path/to/file.wasm'),imports);
  return module;
}

在要使用WebAssembly的.ts文件中:

loadWasm().then((module: any) => {
  let addFunc: ((a: number, b: number) => any) = module.add;
  console.log('Adding 2 and 5 in Wasm: ' + addFunc(2, 5));
});

但是运行此命令时,出现以下错误:

Uncaught (in promise) TypeError: addFunc is not a function at eval

有谁知道是什么原因造成的?

马克斯·格雷

试试以下代码片段:

loadWasm().then(module => {
  const { add: addFunc } = module.instance.exports;
  console.log(addFunc(2, 5));
});

WebAssembly Studio中的完整示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将JQuery导入Typescript文件?

如何将Javascript文件导入Typescript

如何将函数导入Vue组件?

如何将函数导入Vue组件?

如何将数组导入函数 tableViewControler

如何将数组和函数导入函数

如何将Typescript的声明与从模块导入的接口合并使用?

如何将 TypeScript 类集中导入 Angular 模块?

如何将js-modules导入TypeScript文件?

如何将p5.js导入TypeScript?

如何将plotly.js导入TypeScript?

如何将VueLoaderPlugin导入到TypeScript文件?

如何将JSON文件导入TypeScript文件?

如何将Tesseract导入Angular2(TypeScript)

NodeJS如何将JS文件导入TypeScript

如何将声音文件导入React Typescript组件?

如何将TypeScript文件导入为库?

如何将.pem文件导入AWS Lambda函数

如何将ngModel导入指令的链接函数

如何将子模块中的类/函数相互导入?

如何将Typescript NPM模块导入语法转换为ECMA2015模块导入语法

如何将Tradingview js注入React Typescript渲染函数?

如何将addEvent函数转换为Typescript?

(Express、Node、Typescript、REST API)如何将服务中的函数导入控制器?属性 ... 在 typeof 类型上不存在

Django如何将请求函数中的值导入到函数中?

如何将我的 API 函数导入另一个 Typescript 文件?

Typescript:如何将非.ts文件导入为原始字符串

如何将TypeScript导入语句转换为JS Require语句

如何将jwt-decode类型定义导入Typescript(Ionic 2)