isArray,
isFunction,
isOn,
- toNumber
+ toNumber,
+ UnionToIntersection
} from '@vue/shared'
import {
ComponentInternalInstance,
} from './component'
import { callWithAsyncErrorHandling, ErrorCodes } from './errorHandling'
import { warn } from './warning'
-import { UnionToIntersection } from './helpers/typeUtils'
import { devtoolsComponentEmit } from './devtools'
import { AppContext } from './apiCreateApp'
import { emit as compatInstanceEmit } from './compat/instanceEventEmitter'
isObject,
isArray,
NOOP,
- isPromise
+ isPromise,
+ LooseRequired,
+ UnionToIntersection
} from '@vue/shared'
import { computed, isRef, Ref } from '@vue/reactivity'
import {
import { warn } from './warning'
import { VNodeChild } from './vnode'
import { callWithAsyncErrorHandling } from './errorHandling'
-import { LooseRequired, UnionToIntersection } from './helpers/typeUtils'
import { deepMergeData } from './compat/data'
import { DeprecationTypes } from './compat/compatConfig'
import {
EMPTY_ARR,
def,
extend,
- isOn
+ isOn,
+ IfAny
} from '@vue/shared'
import { warn } from './warning'
import {
import { isCompatEnabled, softAssertCompatEnabled } from './compat/compatConfig'
import { DeprecationTypes } from './compat/compatConfig'
import { shouldSkipAttr } from './compat/attrsFallthrough'
-import { IfAny } from './helpers/typeUtils'
export type ComponentPropsOptions<P = Data> =
| ComponentObjectPropsOptions<P>
NOOP,
extend,
isString,
- isFunction
+ isFunction,
+ UnionToIntersection
} from '@vue/shared'
import {
toRaw,
import { markAttrsAccessed } from './componentRenderUtils'
import { currentRenderingInstance } from './componentRenderContext'
import { warn } from './warning'
-import { UnionToIntersection } from './helpers/typeUtils'
import { installCompatInstanceProperties } from './compat/instance'
/**
export * from './escapeHtml'
export * from './looseEqual'
export * from './toDisplayString'
+export * from './typeUtils'
export const EMPTY_OBJ: { readonly [key: string]: any } = __DEV__
? Object.freeze({})