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
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
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
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
}