Members
easySessionStorage
- Source:
通用 easySessionStorage
Example
import { easySessionStorage } from '@jairwinl/utils/esm/easySessionStorage';
// 写入
easySessionStorage.setItem('key', { a: 'a' });
// 读取
easySessionStorage.getItem('key') || {};
// 删除指定key
easySessionStorage.removeItem('key');
// 全部清除
easySessionStorage.clear();
msg
- Source:
校验arg参数数据类型
Methods
appendQueriesToUrl(url, params)
- Source:
向url中添加query
备注: key/value均会进行一次encodeURIComponent
Example
import { appendQueriesToUrl } from '@jairwinl/utils/esm/appendQueriesToUrl';
appendQueriesToUrl('https://example.com', { a: 'b', c: 'd' })
// => 'https://example.com?a=b&c=d'
Parameters:
Name | Type | Description |
---|---|---|
url |
string | |
params |
object | kv键值对,如: {chInf: 'abc'}; |
arrayToObject(arr, key) → {object}
- Source:
数组元素均为对象,转换后对象的key值为数组对象元素的某key对应value
Parameters:
Name | Type | Description |
---|---|---|
arr |
array | 待转换数组 |
key |
string | 转换依据,数组对象元素的key |
Returns:
res 转换后的对象
- Type
- object
box(promise)
异步函数无需 try-catch,让异步编码开发体验更佳。
- 减少 try-catch 引入的嵌套
- 防止出现大而全的 try-catch
- 自动推导类型,避免 try-catch 丢失类型
- 最重要的是逼迫开发者将异常放到第一位去考虑,避免忘记 try-catch 导致 Unhandled Promise rejection
Example
const [error, resp] = await box(ajax.get(url));
if (error || !resp.success) {
const err = error || resp;
console.log('error');
throw err;
}
return resp;
Parameters:
Name | Type | Description |
---|---|---|
promise |
Promise |
Returns:
返回 tuple,失败则第一项是 error
,成功第一项为 undefined
,第二项是返回值
downloadFileUseJS(blob, name, prefix)
- Source:
Example
import { downloadFileUseJS } from '@jairwinl/utils/esm/downloadFileUseJS';
downloadFileUseJS(data)
downloadFileUseJS(data, '测试文件', 'xls')
Parameters:
Name | Type | Default | Description |
---|---|---|---|
blob |
Blob |
|
|
name |
string |
文件
|
文件名称 |
prefix |
string |
xls
|
文件名称后缀 |
formatDate(timeStamp, formatopt) → {string}
- Source:
时间戳格式化输出
Example
import { formatDate } from '@jairwinl/utils/esm/formatDate';
formatDate();
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
timeStamp |
string |
timestamp
|
日期 |
|
format |
string |
<optional> |
YYYY-MM-DD HH:mm:ss
|
时间格式 |
Returns:
时间格式输出
- Type
- string
getQueryString(key) → {string}
- Source:
获取url链接参数
Example
import { getQueryString } from '@jairwinl/utils/esm/getQueryString';
export type IQueryStringKey = 'id'
getQueryString<IQueryStringKey>('id') as string; // 详情ID
Parameters:
Name | Type | Description |
---|---|---|
key |
string | 链接参数 |
Returns:
链接参数
- Type
- string
isArray(v) → {Boolean}
- Source:
判断一个给定的值是否是数组。在新的浏览器环境中使用 Array.isArray,否则使用 polyfill
Example
import { isArray } from '@jairwinl/utils/esm/isArray';
isArray([])
// => true
isArray({})
// => false
Parameters:
Name | Type | Description |
---|---|---|
v |
any | 需要判断的值 |
Returns:
是数组则返回 true
- Type
- Boolean
jsonParseSafely(value, parseFailedDefaultValue) → {*}
- Source:
危险的 JS 内置函数:JSON.parse
Example
import { jsonParseSafely } from '@jairwinl/utils/esm/jsonParseSafely';
jsonParseSafely(window.sessionStorage.getItem(key))
Parameters:
Name | Type | Default | Description |
---|---|---|---|
value |
string | 需要检查的输入 |
|
parseFailedDefaultValue |
* |
{}
|
解析失败默认返回 |
Returns:
解析失败默认返回{},支持自定义
- Type
- *
parse(qs, sep, eq, options)
解析 URL query string
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
qs |
string | 需要解析的 URL query string |
||||||
sep |
string | 用于界定键值对的子字符串。默认为 '&' |
||||||
eq |
string | 用于界定 key 和 value 的子字符串。默认为 '=' |
||||||
options |
object | 自定义解析行为 Properties
|
stringify(obj, sep, eq, options) → {string}
- Source:
将对象转换成 query string
Example
stringify({})
// => ''
stringify({key: 'value', undef: undefined })
// => 'key=value&undef='
Parameters:
Name | Type | Description | ||||||
---|---|---|---|---|---|---|---|---|
obj |
object | 需要序列化成 URL query string 的对象。属性值支持数组。 |
||||||
sep |
string | 用于界定键值对的子字符串。默认为 '&' |
||||||
eq |
string | 用于界定 key 和 value 的子字符串。默认为 '=' |
||||||
options |
object | 自定义编码行为 Properties
|
Returns:
- Type
- string