opt

The CandidType object Opt corresponds to the Candid type opt, is inferred to be a TypeScript Opt<T>, and will be decoded into a JavaScript Object at runtime.

It is a variant with Some and None cases. At runtime if the value of the variant is Some, the Some property of the variant object will have a value of the enclosed Opt type at runtime.

TypeScript or JavaScript:

import { bool, Canister, None, Opt, query, Some } from 'azle/experimental'; export default Canister({ getOptSome: query([], Opt(bool), () => { return Some(true); // equivalent to { Some: true } }), getOptNone: query([], Opt(bool), () => { return None; //equivalent to { None: null} }) });

Candid:

service : () -> { getOptNone : () -> (opt bool) query; getOptSome : () -> (opt bool) query; }

dfx:

dfx canister call candid_canister getOptSome (opt true) dfx canister call candid_canister getOptNone (null)