ComponentOptionsWithArrayProps,
ComponentOptionsWithObjectProps
} from './apiOptions'
-import { SetupContext } from './component'
-import { VNodeChild } from './vnode'
+import { SetupContext, RenderFunction } from './component'
import { ComponentPublicInstance } from './componentProxy'
import { ExtractPropTypes } from './componentProps'
import { isFunction } from '@vue/shared'
// overload 1: direct setup function
// (uses user defined props interface)
export function createComponent<Props, RawBindings = object>(
- setup: (props: Props, ctx: SetupContext) => RawBindings | (() => VNodeChild)
+ setup: (props: Props, ctx: SetupContext) => RawBindings | RenderFunction
): {
new (): ComponentPublicInstance<Props, RawBindings>
}
ComponentInternalInstance,
Data,
Component,
- SetupContext
+ SetupContext,
+ RenderFunction
} from './component'
import {
isFunction,
import { reactive } from '@vue/reactivity'
import { ComponentObjectPropsOptions, ExtractPropTypes } from './componentProps'
import { Directive } from './directives'
-import { VNodeChild } from './vnode'
import { ComponentPublicInstance } from './componentProxy'
import { warn } from './warning'
this: null,
props: Props,
ctx: SetupContext
- ) => RawBindings | (() => VNodeChild) | void
+ ) => RawBindings | RenderFunction | void
name?: string
template?: string
// Note: we are intentionally using the signature-less `Function` type here