TypeScript:此表达式不可调用,没有可调用的“ExportValue”类型的组成部分,WebAssembly模块

dm7nw8vv  于 2022-11-26  发布在  TypeScript
关注(0)|答案(1)|浏览(289)

当我用Deno在index.ts中运行这段代码时遇到了这个问题。

const wasm = await Deno.readFile("./wasm_test/pkg/wasm_test_bg.wasm");
const wasmModule = new WebAssembly.Module(wasm);
const wasmInstance = new WebAssembly.Instance(wasmModule);
const wasmTest = wasmInstance.exports;
wasmTest.sum(1, 3); // Error

错误:此表达式不可调用。没有可调用的“ExportValue”类型的组成部分。
当我调用sum时,我得到一个错误,它应该给予我一个4作为结果。当我以index.js运行它时,它工作得很好。我用wasm-pack编译了Rust代码。

dldeef67

dldeef671#

问题是名称add是未知的。将代码的第4行更改为如下所示:

const wasm = await Deno.readFile("./add.wasm");
const wasmModule = new WebAssembly.Module(wasm);
const wasmInstance = new WebAssembly.Instance(wasmModule);
const sum = wasmInstance.exports.sum as CallableFunction; // exports.add if you test with the below linked wasm.
console.log(sum(1, 3))

请参阅documentation
对于我的测试,我找到了一个带有add函数here的wasm示例。

相关问题