vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
1,146 lines (1,141 loc) • 33.9 kB
text/typescript
export type Tip = {
name: string;
description: string;
result: string[];
};
export const staticTips: Record<
string,
{
attr: Tip[];
fun: Tip[];
}
> = {
/** Number 实例方法和属性 */
number: {
attr: [
{
name: 'constructor',
description: '返回创建该Number实例的构造函数(即Number)',
result: ['function'],
},
],
fun: [
{
name: 'toExponential',
description: '返回一个以指数表示法表示该数字的字符串。',
result: ['string'],
},
{
name: 'toFixed',
description: '使用定点表示法来格式化该数值。',
result: ['string'],
},
{
name: 'toLocaleString',
description: '返回这个数字特定于语言环境的表示字符串',
result: ['string'],
},
{
name: 'toPrecision',
description: '返回一个以指定精度表示该数字的字符串。',
result: ['string'],
},
{
name: 'toString',
description: '返回表示该数字值的字符串。',
result: ['string'],
},
{
name: 'valueOf',
description: '返回该数字的原始值。',
result: ['number'],
},
],
},
/** Number 静态方法和属性 */
Number: {
attr: [
{
name: 'EPSILON',
description: '静态数据属性表示 1 与大于 1 的最小浮点数之间的差值。',
result: ['number'],
},
{
name: 'MAX_SAFE_INTEGER',
description:
'静态数据属性表示在 JavaScript 中最大的安全整数(2^53 – 1)',
result: ['number'],
},
{
name: 'MAX_VALUE',
description: '静态数据属性表示在 JavaScript 中可表示的最大数值。',
result: ['number'],
},
{
name: 'MIN_SAFE_INTEGER',
description:
'静态数据属性代表在 JavaScript 中最小的安全整数 -(2^53 - 1)。',
result: ['number'],
},
{
name: 'MIN_VALUE',
description: '静态数据属性表示在 JavaScript 中可表示的最小正数值。',
result: ['number'],
},
{
name: 'NaN',
description: '静态数据属性表示非数字值,等同于全局NaN。',
result: ['number'],
},
{
name: 'NEGATIVE_INFINITY',
description: '静态数据属性表示负无穷值。',
result: ['number'],
},
{
name: 'POSITIVE_INFINITY',
description: '静态数据属性表示正无穷大值。',
result: ['number'],
},
],
fun: [
{
name: 'isFinite',
description:
'判断传入值是否是一个有限数——检查给定值是数字,且不是正负Infinity或NaN',
result: ['boolean'],
},
{
name: 'isInteger',
description: '判断传入值是否为整数',
result: ['boolean'],
},
{
name: 'isNaN',
description: '判断传入值是否是 NaN',
result: ['boolean'],
},
{
name: 'isSafeInteger',
description: '判断提供的值是否是一个安全整数',
result: ['boolean'],
},
{
name: 'parseFloat',
description: '解析参数并返回浮点数。无法解析则返回NaN。',
result: ['number'],
},
{
name: 'parseInt',
description: '解析字符串参数并返回指定基数的整数。',
result: ['number'],
},
],
},
/** String 实例方法和属性 */
string: {
attr: [
{
name: 'length',
description: '字符串的长度。',
result: ['number'],
},
{
name: 'constructor',
description: '返回创建该String实例的构造函数(即String)',
result: ['function'],
},
],
fun: [
{
name: 'charAt',
description: '返回指定索引处的字符。',
result: ['string'],
},
{
name: 'charCodeAt',
description: '返回指定索引处的字符的Unicode编码。',
result: ['number'],
},
{
name: 'concat',
description: '连接两个或更多字符串,并返回结果。',
result: ['string'],
},
{
name: 'endsWith',
description: '判断字符串是否以指定子字符串结束。',
result: ['boolean'],
},
{
name: 'includes',
description: '判断字符串是否包含指定子字符串。',
result: ['boolean'],
},
{
name: 'indexOf',
description: '返回指定字符在字符串中首次出现的位置。',
result: ['number'],
},
{
name: 'lastIndexOf',
description: '返回指定字符在字符串中最后出现的位置。',
result: ['number'],
},
{
name: 'match',
description: '通过正则表达式匹配字符串,返回匹配结果。',
result: ['array', 'null'],
},
{
name: 'padEnd',
description: '用指定字符填充字符串末尾,直到达到指定长度。',
result: ['string'],
},
{
name: 'padStart',
description: '用指定字符填充字符串开头,直到达到指定长度。',
result: ['string'],
},
{
name: 'repeat',
description: '将字符串重复指定次数并返回。',
result: ['string'],
},
{
name: 'replace',
description:
'将符合正则表达式的内容替换为指定字符串(只替换首次匹配)。',
result: ['string'],
},
{
name: 'replaceAll',
description: '将所有符合正则表达式的内容替换为指定字符串。',
result: ['string'],
},
{
name: 'search',
description: '返回符合正则表达式的内容在字符串中的索引。',
result: ['number'],
},
{
name: 'split',
description: '按指定分隔符分割字符串,返回数组。',
result: ['array'],
},
{
name: 'startsWith',
description: '判断字符串是否以指定字符串开头。',
result: ['boolean'],
},
{
name: 'toLowerCase',
description: '将字符串转换为小写。',
result: ['string'],
},
{
name: 'toUpperCase',
description: '将字符串转换为大写。',
result: ['string'],
},
{
name: 'trim',
description: '去除字符串两端的空白字符。',
result: ['string'],
},
{
name: 'trimEnd',
description: '去除字符串末尾的空白字符。',
result: ['string'],
},
{
name: 'trimStart',
description: '去除字符串开头的空白字符。',
result: ['string'],
},
{
name: 'valueOf',
description: '返回字符串的原始值。',
result: ['string'],
},
{
name: 'codePointAt',
description:
'返回指定索引处字符的Unicode码点(可处理大于U+FFFF的字符)。',
result: ['number'],
},
{
name: 'normalize',
description: '按照指定的Unicode标准形式规范化字符串。',
result: ['string'],
},
],
},
/** String 静态方法和属性 */
String: {
attr: [
{
name: 'prototype',
description: 'String构造函数的原型对象,所有字符串实例继承于此',
result: ['object'],
},
],
fun: [
{
name: 'fromCodePoint',
description: '根据指定的码位序列返回一个字符串',
result: ['string'],
},
{
name: 'raw',
description: '模板字符串的标签函数,用于获取原始字符串模板',
result: ['string'],
},
],
},
/** Array 实例方法和属性 */
array: {
attr: [
{
name: 'length',
description: '表示数组的元素个数。',
result: ['number'],
},
{
name: 'constructor',
description: '返回创建该数组实例的构造函数(即Array)',
result: ['function'],
},
],
fun: [
{
name: 'concat',
description: '合并两个或多个数组,返回新数组。',
result: ['array'],
},
{
name: 'copyWithin',
description:
'浅复制数组部分到同一数组的另一位置,返回原数组(不改变长度)。',
result: ['array'],
},
{
name: 'entries',
description: '返回包含数组每个索引键值对的Array Iterator对象。',
result: ['array'],
},
{
name: 'every',
description: '测试所有元素是否通过指定函数测试,返回布尔值。',
result: ['boolean'],
},
{
name: 'fill',
description: '用固定值填充数组中指定范围的元素。',
result: ['array'],
},
{
name: 'filter',
description: '创建包含通过指定函数测试的所有元素的新数组。',
result: ['array'],
},
{
name: 'find',
description: '返回第一个通过指定函数测试的元素值,无则返回undefined。',
result: ['any'],
},
{
name: 'findIndex',
description: '返回第一个通过指定函数测试的元素索引,无则返回-1。',
result: ['number'],
},
{
name: 'flat',
description: '按指定深度递归遍历数组,合并子数组元素为新数组。',
result: ['array'],
},
{
name: 'flatMap',
description: '先映射每个元素,再将结果压缩为新数组。',
result: ['array'],
},
{
name: 'forEach',
description: '对每个元素执行一次指定函数。',
result: ['boolean'],
},
{
name: 'includes',
description: '判断数组是否包含指定值,返回布尔值。',
result: ['boolean'],
},
{
name: 'indexOf',
description: '返回指定元素首次出现的索引,无则返回-1。',
result: ['number'],
},
{
name: 'join',
description: '将数组元素连接为字符串并返回。',
result: ['string'],
},
{
name: 'keys',
description: '返回包含数组每个索引键的Array Iterator对象。',
result: ['array'],
},
{
name: 'lastIndexOf',
description: '返回指定元素最后出现的索引,无则返回-1。',
result: ['number'],
},
{
name: 'map',
description: '创建新数组,元素为原数组元素调用指定函数的返回值。',
result: ['array'],
},
{
name: 'pop',
description: '删除最后一个元素并返回该元素,改变数组长度。',
result: ['any'],
},
{
name: 'push',
description: '向数组末尾添加元素,返回新长度。',
result: ['number'],
},
{
name: 'reduce',
description: '对元素执行reducer函数(升序),汇总为单个值。',
result: ['any'],
},
{
name: 'reduceRight',
description: '对元素执行reducer函数(降序),汇总为单个值。',
result: ['any'],
},
{
name: 'reverse',
description: '颠倒数组元素顺序,返回原数组。',
result: ['array'],
},
{
name: 'shift',
description: '删除第一个元素并返回该元素,改变数组长度。',
result: ['number'],
},
{
name: 'slice',
description: '返回原数组指定范围的浅拷贝,不改变原数组。',
result: ['array'],
},
{
name: 'some',
description: '测试是否至少有一个元素通过指定函数测试,返回布尔值。',
result: ['boolean'],
},
{
name: 'sort',
description:
'原地排序数组元素,返回原数组(默认按字符串Unicode码排序)。',
result: ['array'],
},
{
name: 'splice',
description: '删除/替换/添加元素,返回被修改的内容,改变原数组。',
result: ['array'],
},
{
name: 'toLocaleString',
description: '返回数组元素的本地化字符串表示。',
result: ['string'],
},
{
name: 'toString',
description: '返回数组的字符串表示。',
result: ['string'],
},
{
name: 'unshift',
description: '向数组开头添加元素,返回新长度。',
result: ['number'],
},
{
name: 'values',
description: '返回包含数组每个索引值的Array Iterator对象。',
result: ['array'],
},
{
name: 'at',
description: '返回指定索引的元素,支持正负索引(负索引从末尾倒数)。',
result: ['any'],
},
{
name: 'toReversed',
description: '返回元素顺序颠倒的新数组,不改变原数组。',
result: ['array'],
},
{
name: 'toSorted',
description: '返回已排序的新数组,不改变原数组。',
result: ['array'],
},
{
name: 'toSpliced',
description: '删除/替换/添加元素,返回被修改的内容,不改变原数组。',
result: ['array'],
},
{
name: 'with',
description: '返回指定位置元素被替换的新数组,不改变原数组。',
result: ['array'],
},
],
},
/** Array 静态方法和属性 */
Array: {
attr: [
{
name: 'prototype',
description: 'Array构造函数的原型对象,所有数组实例继承于此',
result: ['object'],
},
{
name: 'length',
description: 'Array构造函数的length属性,值为1',
result: ['number'],
},
],
fun: [
{
name: 'from',
description: '从类数组对象或可迭代对象创建新的数组实例。',
result: ['array'],
},
{
name: 'isArray',
description: '判断传入值是否为数组,返回布尔值。',
result: ['boolean'],
},
{
name: 'of',
description:
'创建包含可变数量参数的新数组实例(与Array构造函数不同,不特殊处理单个数字参数)。',
result: ['array'],
},
],
},
/** Object 实例方法和属性 */
object: {
attr: [
{
name: 'constructor',
description: '返回创建该对象实例的构造函数',
result: ['function'],
},
{
name: '__proto__',
description: '指向对象的原型对象,用于实现继承(不推荐直接修改)',
result: ['object'],
},
],
fun: [
{
name: 'toString',
description: '返回对象的字符串表示。',
result: ['string'],
},
{
name: 'toLocaleString',
description: '返回对象的本地化字符串表示。',
result: ['string'],
},
{
name: 'valueOf',
description: '返回对象的原始值。',
result: ['any'],
},
{
name: 'hasOwnProperty',
description: '判断对象自身是否包含指定属性(不包括继承属性)。',
result: ['boolean'],
},
{
name: 'isPrototypeOf',
description:
'判断当前对象是否是另一个对象的原型(即另一个对象是否继承于此)。',
result: ['boolean'],
},
{
name: 'propertyIsEnumerable',
description: '判断指定属性是否是对象自身的可枚举属性。',
result: ['boolean'],
},
],
},
/** Object 静态方法和属性 */
Object: {
attr: [
{
name: 'prototype',
description: 'Object构造函数的原型对象,所有对象间接继承于此',
result: ['object'],
},
{
name: 'length',
description: 'Object构造函数的length属性,值为1',
result: ['number'],
},
],
fun: [
{
name: 'assign',
description: '将一个或多个源对象的可枚举属性复制到目标对象。',
result: ['object'],
},
{
name: 'create',
description: '使用指定原型和属性创建新对象。',
result: ['object'],
},
{
name: 'defineProperties',
description: '在对象上定义多个属性(可配置特性),返回该对象。',
result: ['object'],
},
{
name: 'defineProperty',
description: '在对象上定义单个属性(可配置特性),返回该对象。',
result: ['object'],
},
{
name: 'entries',
description: '返回对象自身可枚举属性的键值对数组。',
result: ['array'],
},
{
name: 'freeze',
description: '冻结对象:禁止添加/删除属性,禁止修改属性值和特性。',
result: ['object'],
},
{
name: 'fromEntries',
description: '将键值对数组转换为对象。',
result: ['object'],
},
{
name: 'getOwnPropertyDescriptor',
description: '返回对象自身指定属性的描述符。',
result: ['object'],
},
{
name: 'getOwnPropertyDescriptors',
description: '返回对象自身所有属性的描述符。',
result: ['object'],
},
{
name: 'getOwnPropertyNames',
description:
'返回对象自身所有属性名(包括不可枚举,不含Symbol)的数组。',
result: ['array'],
},
{
name: 'getOwnPropertySymbols',
description: '返回对象自身所有Symbol属性的数组。',
result: ['array'],
},
{
name: 'getPrototypeOf',
description: '返回对象的原型(内部[[Prototype]]属性)。',
result: ['object'],
},
{
name: 'is',
description: '判断两个值是否为同一个值(比===更严格)。',
result: ['boolean'],
},
{
name: 'isExtensible',
description: '判断对象是否可扩展(是否允许添加新属性)。',
result: ['boolean'],
},
{
name: 'isFrozen',
description: '判断对象是否被冻结。',
result: ['boolean'],
},
{
name: 'isSealed',
description: '判断对象是否被密封。',
result: ['boolean'],
},
{
name: 'keys',
description: '返回对象自身可枚举属性的键名数组。',
result: ['array'],
},
{
name: 'preventExtensions',
description: '禁止对象扩展(不能添加新属性)。',
result: ['object'],
},
{
name: 'seal',
description: '密封对象:禁止添加/删除属性,允许修改属性值。',
result: ['object'],
},
{
name: 'setPrototypeOf',
description: '设置对象的原型(内部[[Prototype]]属性)。',
result: ['object'],
},
{
name: 'values',
description: '返回对象自身可枚举属性的值数组。',
result: ['array'],
},
],
},
/** Math 静态方法和属性(Math 无实例方法) */
Math: {
attr: [
{
name: 'E',
description: '静态属性,表示自然对数的底数(约等于 2.718)。',
result: ['number'],
},
{
name: 'LN2',
description: '静态属性,表示 2 的自然对数(约等于 0.693)。',
result: ['number'],
},
{
name: 'LN10',
description: '静态属性,表示 10 的自然对数(约等于 2.302)。',
result: ['number'],
},
{
name: 'LOG2E',
description: '静态属性,表示以 2 为底 e 的对数(约等于 1.442)。',
result: ['number'],
},
{
name: 'LOG10E',
description: '静态属性,表示以 10 为底 e 的对数(约等于 0.434)。',
result: ['number'],
},
{
name: 'PI',
description: '静态属性,表示圆周率(约等于 3.14159)。',
result: ['number'],
},
{
name: 'SQRT1_2',
description: '静态属性,表示 1/√2 的值(约等于 0.707)。',
result: ['number'],
},
{
name: 'SQRT2',
description: '静态属性,表示 √2 的值(约等于 1.414)。',
result: ['number'],
},
],
fun: [
{
name: 'abs',
description: '返回一个数的绝对值。',
result: ['number'],
},
{
name: 'acos',
description: '返回一个数的反余弦值(单位为弧度)。',
result: ['number'],
},
{
name: 'acosh',
description: '返回一个数的反双曲余弦值。',
result: ['number'],
},
{
name: 'asin',
description: '返回一个数的反正弦值(单位为弧度)。',
result: ['number'],
},
{
name: 'asinh',
description: '返回一个数的反双曲正弦值。',
result: ['number'],
},
{
name: 'atan',
description: '返回一个数的反正切值(单位为弧度)。',
result: ['number'],
},
{
name: 'atan2',
description:
'返回两个数的商的反正切值(单位为弧度),可确定点在平面上的角度。',
result: ['number'],
},
{
name: 'atanh',
description: '返回一个数的反双曲正切值。',
result: ['number'],
},
{
name: 'cbrt',
description: '返回一个数的立方根。',
result: ['number'],
},
{
name: 'ceil',
description: '返回大于或等于一个数的最小整数(向上取整)。',
result: ['number'],
},
{
name: 'clz32',
description: '返回一个 32 位无符号整数的前导零的数量。',
result: ['number'],
},
{
name: 'cos',
description: '返回一个数的余弦值(单位为弧度)。',
result: ['number'],
},
{
name: 'cosh',
description: '返回一个数的双曲余弦值。',
result: ['number'],
},
{
name: 'exp',
description: '返回 e 的指定次幂(e^x)。',
result: ['number'],
},
{
name: 'expm1',
description: '返回 e 的指定次幂减 1(e^x - 1),适用于小数值计算。',
result: ['number'],
},
{
name: 'floor',
description: '返回小于或等于一个数的最大整数(向下取整)。',
result: ['number'],
},
{
name: 'fround',
description: '返回一个数的 32 位单精度浮点数表示。',
result: ['number'],
},
{
name: 'hypot',
description:
'返回所有参数的平方和的平方根(即直角三角形斜边长度公式的扩展)。',
result: ['number'],
},
{
name: 'imul',
description: '返回两个 32 位整数相乘的结果(作为 32 位整数)。',
result: ['number'],
},
{
name: 'log',
description: '返回一个数的自然对数(以 e 为底)。',
result: ['number'],
},
{
name: 'log1p',
description:
'返回一个数加 1 的自然对数(ln(x + 1)),适用于小数值计算。',
result: ['number'],
},
{
name: 'log10',
description: '返回一个数的以 10 为底的对数。',
result: ['number'],
},
{
name: 'log2',
description: '返回一个数的以 2 为底的对数。',
result: ['number'],
},
{
name: 'max',
description: '返回一组数中的最大值。',
result: ['number'],
},
{
name: 'min',
description: '返回一组数中的最小值。',
result: ['number'],
},
{
name: 'pow',
description: '返回基数的指数次幂(base^exponent)。',
result: ['number'],
},
{
name: 'random',
description: '返回一个 0(包含)到 1(不包含)之间的伪随机数。',
result: ['number'],
},
{
name: 'round',
description: '返回一个数四舍五入后的整数。',
result: ['number'],
},
{
name: 'sign',
description:
'返回一个数的符号:正数返回 1,负数返回 -1,0 返回 0,-0 返回 -0,非数字返回 NaN。',
result: ['number'],
},
{
name: 'sin',
description: '返回一个数的正弦值(单位为弧度)。',
result: ['number'],
},
{
name: 'sinh',
description: '返回一个数的双曲正弦值。',
result: ['number'],
},
{
name: 'sqrt',
description: '返回一个数的平方根。',
result: ['number'],
},
{
name: 'tan',
description: '返回一个数的正切值(单位为弧度)。',
result: ['number'],
},
{
name: 'tanh',
description: '返回一个数的双曲正切值。',
result: ['number'],
},
{
name: 'trunc',
description: '返回一个数的整数部分(去除小数部分,不进行四舍五入)。',
result: ['number'],
},
],
},
/** */
regexp: {
attr: [
{
name: 'global',
description: '只读属性,返回正则表达式是否开启全局匹配(g 标志)。',
result: ['boolean'],
},
{
name: 'ignoreCase',
description:
'只读属性,返回正则表达式是否开启不区分大小写匹配(i 标志)。',
result: ['boolean'],
},
{
name: 'multiline',
description: '只读属性,返回正则表达式是否开启多行匹配(m 标志)。',
result: ['boolean'],
},
{
name: 'dotAll',
description:
'只读属性,返回正则表达式是否开启任意字符匹配(s 标志,允许 . 匹配换行符)。',
result: ['boolean'],
},
{
name: 'unicode',
description:
'只读属性,返回正则表达式是否开启 Unicode 模式(u 标志)。',
result: ['boolean'],
},
{
name: 'sticky',
description:
'只读属性,返回正则表达式是否开启粘连匹配(y 标志,仅从 lastIndex 位置开始匹配)。',
result: ['boolean'],
},
{
name: 'source',
description: '只读属性,返回正则表达式的源文本(不包含标志)。',
result: ['string'],
},
{
name: 'lastIndex',
description:
'可读可写属性,返回下一次匹配的起始位置(仅对具有 g 或 y 标志的正则表达式有效)。',
result: ['number'],
},
],
fun: [
{
name: 'exec',
description:
'在字符串中执行匹配,返回包含匹配结果的数组;若无匹配则返回 null。',
result: ['array', 'null'],
},
{
name: 'test',
description: '测试字符串是否匹配正则表达式,返回布尔值。',
result: ['boolean'],
},
{
name: 'toString',
description: '返回表示正则表达式的字符串(包含模式和标志)。',
result: ['string'],
},
{
name: 'flags',
description: '返回一个字符串,包含正则表达式的所有标志(ES6+)。',
result: ['string'],
},
{
name: 'Symbol.replace',
description:
'实现 String.prototype.replace() 的方法,允许自定义替换逻辑。',
result: ['string'],
},
{
name: 'Symbol.search',
description:
'实现 String.prototype.search() 的方法,允许自定义搜索逻辑。',
result: ['number'],
},
{
name: 'Symbol.split',
description:
'实现 String.prototype.split() 的方法,允许自定义分割逻辑。',
result: ['array'],
},
],
},
console: {
attr: [], // console 对象没有属性
fun: [
{
name: 'log',
description: '输出普通信息到控制台。',
result: ['void'],
},
{
name: 'info',
description: '输出信息性消息到控制台(通常带信息图标)。',
result: ['void'],
},
{
name: 'warn',
description: '输出警告信息到控制台(带黄色警告图标)。',
result: ['void'],
},
{
name: 'error',
description: '输出错误信息到控制台(带红色错误图标)。',
result: ['void'],
},
{
name: 'debug',
description: '输出调试信息到控制台(仅在调试模式下显示)。',
result: ['void'],
},
{
name: 'dir',
description: '以交互式列表形式显示对象的属性。',
result: ['void'],
},
{
name: 'table',
description: '以表格形式显示结构化数据。',
result: ['void'],
},
{
name: 'trace',
description: '输出当前执行的堆栈跟踪。',
result: ['void'],
},
{
name: 'assert',
description: '当条件为 false 时,输出错误信息到控制台。',
result: ['void'],
},
{
name: 'count',
description: '统计调用次数,并在控制台打印计数结果。',
result: ['void'],
},
{
name: 'countReset',
description: '重置指定标签的计数器。',
result: ['void'],
},
{
name: 'time',
description: '启动一个计时器(用于测量操作耗时)。',
result: ['void'],
},
{
name: 'timeLog',
description: '输出计时器的当前耗时。',
result: ['void'],
},
{
name: 'timeEnd',
description: '停止计时器并输出总耗时。',
result: ['void'],
},
{
name: 'group',
description: '在控制台创建一个折叠的信息分组。',
result: ['void'],
},
{
name: 'groupCollapsed',
description: '创建一个默认折叠的信息分组。',
result: ['void'],
},
{
name: 'groupEnd',
description: '结束当前的信息分组。',
result: ['void'],
},
{
name: 'clear',
description: '清空控制台。',
result: ['void'],
},
{
name: 'profile',
description:
'开始收集 JavaScript 性能分析数据(需配合浏览器开发者工具使用)。',
result: ['void'],
},
{
name: 'profileEnd',
description: '停止收集 JavaScript 性能分析数据。',
result: ['void'],
},
{
name: 'timeStamp',
description: '在浏览器性能时间轴中添加标记(需配合开发者工具使用)。',
result: ['void'],
},
],
},
};
export const flatStaticTips = Object.values(staticTips)
.map((item) => Object.values(item))
.flat(2);
export const singleTips = [
'Number',
'String',
'Array',
'Object',
'Math',
'console',
'uni',
'window',
];
export const baseSymbols = [';', '(', '=', '+', '-', '*', '/', '&', '|', '?'];