title | description | canonical |
---|---|---|
Import & Export | Importing / exporting in ReScript modules | /docs/manual/v12.0.0/import-export |
Unlike JavaScript, ReScript doesn't have or need import statements:
<CodeTab labels={["ReScript", "JS Output"]}>
// Inside School.resletstudentMessage=Student.message
varStudent=require("./Student.res.js");varstudentMessage=Student.message
The above code refers to the message
binding in the file Student.res
. Every ReScript file is also a module, so accessing another file's content is the same as accessing another module's content!
A ReScript project's file names need to be unique.
By default, every file's type declaration, binding and module is exported, aka publicly usable by another file. This also means those values, once compiled into JS, are immediately usable by your JS code.
To only export a few selected things, use a .resi
interface file.
To see how to import JS modules and export stuff for JS consumption, see the JavaScript Interop section's Import from/Export to JS.