文档 / 语言手册 / 新人示例
Edit

新人示例

一例胜千言。

本节是为想要了解惯用写法和编码规范的新人专门准备的。如果你是初学者,对某个例子有更好的想法,请提出修改建议!

使用 option 类型

ReScriptJS Output
let possiblyNullValue1 = None
let possiblyNullValue2 = Some("Hello")

switch possiblyNullValue2 {
| None => Js.log("Nothing to see here.")
| Some(message) => Js.log(message)
}

创建参数化类型

ReScriptJS Output
type universityStudent = {gpa: float}

type response<'studentType> = {
  status: int,
  student: 'studentType,
}

创建 JS 对象

ReScriptJS Output
let student1 = {
  "name": "John",
  "age": 30,
}

或使用记录

ReScriptJS Output
type payload = {
  name: string,
  age: int,
}

let student1 = {
  name: "John",
  age: 30,
}

为带有默认导出的 JS 模块建模

此处

使用 option 检查 JS 的可空类型

对于参数是 JavaScript 值(可能为 nullundefined )的函数,一般将参数转为 option。可以通过 ReScript 的 Js.Nullable 模块完成转换。在这种情况下,使用 toOption

ReScriptJS Output
let greetByName = (possiblyNullName) => {
  let optionName = Js.Nullable.toOption(possiblyNullName)
  switch optionName {
  | None => "Hi"
  | Some(name) => "Hello " ++ name
  }
}

这个检查在 JS 中编译为 possiblyNullName == null,所以可以检查是否存在 nullundefined