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)