Functions in AssemblyScript
Functions in AssemblyScript work just like in TypeScript. There are only two differences:
- You need to provide types for parameters and returns
- Closures are not supported yet. More on it later in the article
Writing a function
Section titled “Writing a function”This example of a function is provided in the starter template of every AssemblyScript project.
function add(a: i32, b: i32): i32 { return a + b}Calling functions in JavaScript
Section titled “Calling functions in JavaScript”Functions need to be exported before you can use them in JavaScript
export function add(a: i32, b: i32): i32 { return a + b}Once you build the code, import and use the function in JavaScript
import { add } from './build/release.js'console.log(add(2, 1))Closures
Section titled “Closures”The following code structure would lead to erros, as we create different closures. A variable in the first scope could not be accessed in the wrapped scope.
function () { return function b() { return }}function sumTimesTen(a: i32, b: i32): i32 { const sum: i32 = a + b
return sum * 10}