Skip to main content
Version: Next

private

The decorator @private can be used on a top-level declaration to prevent a given value from being exported outside the compilation unit.

Consider the following contents of the file module-with-private.jsligo:

// @private
const stuff = 42;
// @private
const g = x => x * stuff;
const f = x => g(x) + 1; // exported by default
import * as ModuleWithPrivate from "gitlab-pages/docs/reference/decorators/src/private/module-with-private.mligo";
const foo = ModuleWithPrivate.f(123); // = 5167
/*
The following lines cause errors because g and stuff are private:
const bad_1 = ModuleWithPrivate.g(123);
const bad_2 = ModuleWithPrivate.stuff;
*/