У меня есть проект, написанный на TypeScript, и я пытаюсь импортировать модуль WebAssembly, чтобы заменить некоторые функции.
Мне удалось успешно импортировать модуль WebAssembly, извлекая логику для загрузки .wasm в файл .js. Это собственный модуль TypeScript, который импортируется в файл .ts, где я хочу использовать функции WebAssembly.
Для демонстрации я сделал простую функцию добавления в wasm.
В .ts, скомпилированном в .wasm с AssemblyScript:
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;
}
И в файле .ts, где я хочу использовать WebAssembly:
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
Кто-нибудь вызывает это?