繁体   English   中英

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

[英]TypeScript: This expression is not callable. No constituent of type 'ExportValue' is callable. WebAssembly module

当我使用 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 代码。

问题是名称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))

请参阅文档

对于我的测试,我在 这里找到了一个带有add -function 的 wasm 示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM