mirror of https://github.com/vuejs/core.git
perf: optimize toDisplayString
This commit is contained in:
parent
11383ae72d
commit
1ef15c780f
|
@ -7,7 +7,6 @@ import {
|
||||||
isObject,
|
isObject,
|
||||||
isPlainObject,
|
isPlainObject,
|
||||||
isSet,
|
isSet,
|
||||||
isString,
|
|
||||||
isSymbol,
|
isSymbol,
|
||||||
objectToString,
|
objectToString,
|
||||||
} from './general'
|
} from './general'
|
||||||
|
@ -22,17 +21,24 @@ const isRef = (val: any): val is { value: unknown } => {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
export const toDisplayString = (val: unknown): string => {
|
export const toDisplayString = (val: unknown): string => {
|
||||||
return isString(val)
|
switch (typeof val) {
|
||||||
? val
|
case 'string':
|
||||||
: val == null
|
return val
|
||||||
? ''
|
case 'object':
|
||||||
: isArray(val) ||
|
if (val) {
|
||||||
(isObject(val) &&
|
if (isRef(val)) {
|
||||||
(val.toString === objectToString || !isFunction(val.toString)))
|
return toDisplayString(val.value)
|
||||||
? isRef(val)
|
} else if (
|
||||||
? toDisplayString(val.value)
|
isArray(val) ||
|
||||||
: JSON.stringify(val, replacer, 2)
|
val.toString === objectToString ||
|
||||||
: String(val)
|
!isFunction(val.toString)
|
||||||
|
) {
|
||||||
|
return JSON.stringify(val, replacer, 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return val == null ? '' : String(val)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const replacer = (_key: string, val: unknown): any => {
|
const replacer = (_key: string, val: unknown): any => {
|
||||||
|
|
Loading…
Reference in New Issue