refactor(types): move component props interfaces + expose AllowedComponentProps
fix #1632
This commit is contained in:
parent
2deb0c7a74
commit
03c681e396
@ -7,7 +7,12 @@ import {
|
||||
ComponentOptionsMixin,
|
||||
RenderFunction
|
||||
} from './componentOptions'
|
||||
import { SetupContext, FunctionalComponent } from './component'
|
||||
import {
|
||||
SetupContext,
|
||||
FunctionalComponent,
|
||||
AllowedComponentProps,
|
||||
ComponentCustomProps
|
||||
} from './component'
|
||||
import {
|
||||
CreateComponentPublicInstance,
|
||||
ComponentPublicInstanceConstructor
|
||||
@ -15,11 +20,7 @@ import {
|
||||
import { ExtractPropTypes, ComponentPropsOptions } from './componentProps'
|
||||
import { EmitsOptions } from './componentEmits'
|
||||
import { isFunction } from '@vue/shared'
|
||||
import {
|
||||
VNodeProps,
|
||||
AllowedComponentProps,
|
||||
ComponentCustomProps
|
||||
} from './vnode'
|
||||
import { VNodeProps } from './vnode'
|
||||
|
||||
// defineComponent is a utility that is primarily used for type inference
|
||||
// when declaring components. Type inference is provided in the component
|
||||
|
@ -53,6 +53,19 @@ import { componentAdded } from './devtools'
|
||||
|
||||
export type Data = Record<string, unknown>
|
||||
|
||||
/**
|
||||
* For extending allowed non-declared props on components in TSX
|
||||
*/
|
||||
export interface ComponentCustomProps {}
|
||||
|
||||
/**
|
||||
* Default allowed non-declared props on ocmponent in TSX
|
||||
*/
|
||||
export interface AllowedComponentProps {
|
||||
class?: unknown
|
||||
style?: unknown
|
||||
}
|
||||
|
||||
// Note: can't mark this whole interface internal because some public interfaces
|
||||
// extend it.
|
||||
export interface ComponentInternalOptions {
|
||||
|
@ -54,7 +54,7 @@ export { h } from './h'
|
||||
// Advanced render function utilities
|
||||
export { createVNode, cloneVNode, mergeProps, isVNode } from './vnode'
|
||||
// VNode types
|
||||
export { Fragment, Text, Comment, Static, ComponentCustomProps } from './vnode'
|
||||
export { Fragment, Text, Comment, Static } from './vnode'
|
||||
// Built-in components
|
||||
export { Teleport, TeleportProps } from './components/Teleport'
|
||||
export { Suspense, SuspenseProps } from './components/Suspense'
|
||||
@ -159,7 +159,9 @@ export {
|
||||
Component,
|
||||
FunctionalComponent,
|
||||
ComponentInternalInstance,
|
||||
SetupContext
|
||||
SetupContext,
|
||||
ComponentCustomProps,
|
||||
AllowedComponentProps
|
||||
} from './component'
|
||||
export {
|
||||
ComponentOptions,
|
||||
|
@ -71,12 +71,6 @@ export type VNodeHook =
|
||||
| VNodeMountHook[]
|
||||
| VNodeUpdateHook[]
|
||||
|
||||
export interface ComponentCustomProps {}
|
||||
export interface AllowedComponentProps {
|
||||
class?: unknown
|
||||
style?: unknown
|
||||
}
|
||||
|
||||
// https://github.com/microsoft/TypeScript/issues/33099
|
||||
export type VNodeProps = {
|
||||
key?: string | number
|
||||
|
Loading…
Reference in New Issue
Block a user