跳到主要内容

levn

把字符串转化为指定的类型和格式。

const { parse } = require('levn')

parse('Number', '2') //=> 2
parse('String', '2') //=> '2'

parse('Number | String', 'str') //=> 'str'
parse('Number | String', '2') //=> 2

parse('[Number]', '[1,2,3]') //=> [1,2,3]
parse('(String, Boolean)', '(hi, false)') //=> ['hi', false]
parse('{a: String, b: Number}', '{a: str, b: 2}') //=> {a: 'str', b: 2}

不是强转类型那么简单粗暴,还支持多元化的类型。

而且还支持 [Number] 这种类似 TS 的写法。

对于下面这种错误,会直接报错。

parse('Number', 'abc') //=> Error: Value "abc" does not type check against [{"type":"Number"}].

我在项目中常见的做法是强转失败就展示默认,至少不能报错。

不过抛出错误,也方便追踪数据源。

这个工具在比较底层的且数据格式复杂情况下,处理上应该能有些作用。