簡體   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