如何在 ReScript 中编写 short local open?

How to write short local open in ReScript?

这在 ReasonML 中编译:

let testFn = who => Js.(log("Hello " ++ who ++ "!"));

但不在 ReScript 中:

FAILED: src/test.ast

  Syntax error!
  /xxx/src/test.res:1:25-27

  1 │ let testFn = who => Js.(log("Hello " ++ who ++ "!"));
  2 │

  I'm not sure what to parse here when looking at "(".


  Syntax error!
  /xxx/src/test.res:1:25-27

  1 │ let testFn = who => Js.(log("Hello " ++ who ++ "!"));
  2 │

  consecutive statements on a line must be separated by ';' or a newline

我在 official docs 中没有发现任何关于删除的提及。我错过了吗?语法是否已更改,或者是否已删除且未在文档中提及?

正如@Yawar 在评论中指出的那样,在撰写本文时不支持这种简写形式,但可能会在未来的某个时候支持(请参阅 https://github.com/rescript-lang/syntax/issues/2 进行讨论)。

为了让遇到此问题的人省去点击次数,解决方法是使用本地范围重写它并在该范围内打开模块:

let testFn = who => {
  open Js
  log("Hello " ++ who ++ "!")
}