javascript - TypeScript: Detta uttryck kan inte anropas. Ingen beståndsdel av typen 'ExportValue' kan anropas. WebAssembly-modul
Jag fick detta problem när jag körde denna kod i index.ts med Deno.
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
Fel: Detta uttryck är inte anropbart. Ingen beståndsdel av typen 'ExportValue' är anropbar.
Jag får ett fel när jag anropar sum, det borde ge mig 4 som resultat. När jag kör det som index.js fungerar det perfekt. Jag använde wasm-pack för att kompilera Rust-koden.
Svar #1
Problemet är att namnet add inte är känt. Ändra den fjärde raden i din kod enligt nedan:
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))
Se dokumentation.
För mitt test hittade jag ett wasm-exempel med en add-funktion här.
