Closed
Description
I tried to instantiate
with asc loader, lilke this:
instantiate<{}>(wasm, {
env: {
abort: (msg: number, file: number, line: number, column: number) => {
console.error("abort called at" + file + " " + line + ":" + column);
}
},
})
And It gives a following error:
error TS2411: Property 'env' of type '{ memory?: Memory | undefined; table?: Table | undefined; seed?: (() => number) | undefined; abort?(msg: number, file: number, line: number, column: number): void; trace?(msg: number, numArgs?: number | undefined, ...args: number[]): void; } | undefined' is not assignable to string index type 'Record<string, ImportValue>'.
I'm using [email protected]
.
The error was gone when I tried this:
export interface WasmEnv {
env?: {
memory?: WebAssembly.Memory,
table?: WebAssembly.Table,
seed?: () => number,
abort?(msg: number, file: number, line: number, column: number): void,
trace?(msg: number, numArgs?: number, ...args: number[]): void
};
}
/** WebAssembly imports with two levels of nesting. */
export type Imports = WasmEnv & Record<string, Record<string, ImportValue>>;
instead of the existing type:
/** WebAssembly imports with two levels of nesting. */
export interface Imports extends Record<string, Record<string, ImportValue>> {
env?: {
memory?: WebAssembly.Memory,
table?: WebAssembly.Table,
seed?: () => number,
abort?(msg: number, file: number, line: number, column: number): void,
trace?(msg: number, numArgs?: number, ...args: number[]): void
};
}
Yeah, so maybe the type definitions of the loader needs to be fixed.