Skip to main content
On this page

@std/toml

概览 Jump to heading

parsestringify 用于处理 TOML 编码的数据。

请确保阅读支持的类型,因为并非所有规范目前都被支持,并且在 TypeScript 端的处理有些不同。

支持的类型和处理方式

带有警告的支持内容,请参见 警告 部分。

警告

字符串

由于规范限制,TOML 声明中无法正确检测正则表达式,因此正则会被存储为字符串。

整数

对于 二进制 / 八进制 / 十六进制 数字,它们会被存储为字符串,以免被解释为十进制数。

本地时间

因为 JavaScript 中不存在本地时间类型,所以本地时间被存储为字符串。

表格数组

目前只支持如下简单声明:

[[bin]];
name = "deno";
path = "cli/main.rs"[[bin]];
name = "deno_core";
path = "src/foo.rs"[[nib]];
name = "node";
path = "not_found";

将输出:

{
  "bin": [
    { "name": "deno", "path": "cli/main.rs" },
    { "name": "deno_core", "path": "src/foo.rs" }
  ],
  "nib": [{ "name": "node", "path": "not_found" }]
}
import { parse, stringify } from "@std/toml";
import { assertEquals } from "@std/assert";

const obj = {
  bin: [
    { name: "deno", path: "cli/main.rs" },
    { name: "deno_core", path: "src/foo.rs" },
  ],
  nib: [{ name: "node", path: "not_found" }],
};

const tomlString = stringify(obj);
assertEquals(
  tomlString,
  `
[[bin]]
name = "deno"
path = "cli/main.rs"

[[bin]]
name = "deno_core"
path = "src/foo.rs"

[[nib]]
name = "node"
path = "not_found"
`,
);

const tomlObject = parse(tomlString);
assertEquals(tomlObject, obj);

添加到你的项目中 Jump to heading

deno add jsr:@std/toml

查看 @std/toml 中的所有符号

什么是 TOML? Jump to heading

TOML(Tom's Obvious, Minimal Language)是一种配置文件格式,因其简单的语法而易于阅读。它支持多种数据类型,如字符串、数字、布尔值、日期、数组和表格,使其在配置中非常灵活。

为什么使用 @std/toml? Jump to heading

该模块提供了一种简单高效的方式,在 JavaScript 中解析和序列化 TOML 数据。可用于读取配置文件或以编程方式生成 TOML 内容。

小贴士 Jump to heading

  • 注意支持的类型:某些 TOML 结构在 JS 中会以字符串形式表示。
  • 对于重复的部分,使用表格数组;保持结构简单以便于理解和维护。

你找到了你需要的东西吗?

编辑此页面
隐私政策