From 17d9df3610b6ae6fd84758f38bff5324c24b5581 Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Sun, 4 May 2025 17:53:50 +0200 Subject: [PATCH] add fixed arguments case to as decorator syntax lookup entry --- misc_docs/syntax/decorator_as.mdx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/misc_docs/syntax/decorator_as.mdx b/misc_docs/syntax/decorator_as.mdx index 600a99b8c..416273bce 100644 --- a/misc_docs/syntax/decorator_as.mdx +++ b/misc_docs/syntax/decorator_as.mdx @@ -82,6 +82,28 @@ let somethingElse = null; Read more about the [`@as` decorator and variants](variant.md#valid-as-payloads). +## Adding fixed argument values to external functions +You can leverage the `@as` decorator to add fixed values for external function arguments. You then do not need to supply a value for that argument. + + + +```res +@module("fs") +external readFileSyncUtf8: (string, @as(json`{encoding: "utf8"}`) _) => string = "readFileSync" + +let contents = readFileSyncUtf8("./someFile.txt") +``` + +```js +import * as Fs from "fs"; + +let contents = Fs.readFileSync("./someFile.txt", {encoding: "utf8"}); +``` + + + +Read more about [fixed arguments in functions](bind-to-js-function.md#fixed-arguments). + ### References * [Bind Using ReScript Record](/docs/manual/latest/bind-to-js-object#bind-using-rescript-record)