Postman Flows 数据类型
Postman Flows 是一种数据流语言,这意味着它理解所有类型的值并将类型与数据相关联。Flows 是一种混合类型语言,因此它执行静态类型检查以提供自动完成和预警等功能。流程还在执行期间执行一些动态类型检查。
由于大多数流程序员都有 JavaScript 或 TypeScript 背景,或者是第一次使用 API 优先语言进行编程,因此类型的词汇类似于 JavaScript 和 TypeScript。
原始值
类型 | 它接受什么 | 例子 |
---|---|---|
布尔值 | true 或者false | true |
string | utf-8 编码的字符 | hello world 😎 |
number | 双精度 64 位值或 64 位无符号整数 | 3.14 |
4294967295 | ||
时间戳 | 包含 RFC3339 时间戳的字符串 | 1985-04-12T23:20:50.52Z |
正则表达式 | 正则表达式 | /ab+c/ |
象征 | 各种类型的符号 | now |
null |
布尔值
布尔值可以包含两个符号true
or false
。布尔类型用符号 表示bool
。
如果需要,布尔值会自动转换为number或字符串。
价值 | number | string |
---|---|---|
true | 1 | "true" |
false | 0 | "false" |
string
字符串类型用于表示文本数据。它是一个 UTF-8 编码的字符列表。与 JavaScript 一样,流中的字符串也是不可变的。例如,字符串一旦创建,就无法修改。但是你可以使用 concat或substring等运算符从现有字符串中创建新字符串。
字符串值不能自动转换为任何其他类型。
JSON 值是字符串类型。如果 header 指示 JSON 正文,则发送请求块会自动解析数据。
content-type
在没有自动解析的情况下,你需要使用JSON Parse
块来解析字符串。
number
number 类型可以表示各种数值,例如整数和小数。number 在内部存储为 JavaScript number,但将来会发生变化,以考虑 64 位整数并提供统一的 number 类型。
如果需要,number值会自动转换为字符串或布尔值。
价值 | 布尔值 | string |
---|---|---|
0 | 错误的 | "0" |
3.14 | 真的 | "3.14" |
时间戳
与 JavaScript 不同,Postman Flows 将日期视为一等类型,并提供了一种用于存储日期的数据类型。日期按照 RFC 3339 存储。
如果需要,时间戳值会自动转换为字符串或number。
价值 | string | number |
---|---|---|
1985-04-12T23:20:50.52Z | "1985-04-12T23:20:50.52Z" | 482196050520 |
正则表达式
正则表达式是可用于匹配字符串中的字符组合的模式。Flows 借用了 JavaScript 正则表达式实现。 在 MDN 上阅读更多内容 。
如果需要,正则表达式值会自动转换为字符串。
价值 | string |
---|---|
/$^/ | "/$^/" |
抽象类型
流中所有复杂和抽象的数据类型在内部都建立在流的概念之上。
列表
列表数据类型表示有序值流,其中相同类型的值可能出现不止一次。列表类似于 JavaScript 中的数组,但列表中存在的所有元素必须属于同一类型。
这是一个等价于列表的 TypeScript:
const list: number[] = [1, 2, 3, 4, 5]
元组
元组数据类型表示有限元素的有序序列。元组的每个元素的值可以是不同的类型。与列表不同,元组不能是无限流。元组有固定的大小,必须事先知道它们的大小。
这是元组的 TypeScript 等价物。
const list: [string, number, boolean] = ["flows", 20, true]
记录
记录是字段(键值对)的集合,其中键是字符串类型,值可以是不同类型。这些字段的数量是固定的,并遵循特定的顺序。如果你对 C 有一定的了解,记录就像struct
.
这是一个相当于记录的 TypeScript:
interface Box {
name: string
length: number
width: number
height: number
empty: boolean
}
Map
映射是字段的集合,其中键可以是原始类型的值,对应的值可以是任何数据类型。所有映射字段必须具有相同类型的键和值。
这是 Map 的 TypeScript 等效项:
type map: {[key: string]: number} = {"a": 1, "b": 2, "c": 3};