Skip to content

Commit 8a78e6a

Browse files
DanielRosenwassersxzz
authored andcommitted
fix(types): propagate type parameter constraints for TypeScript 4.8
1 parent 7cdd13b commit 8a78e6a

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

packages/runtime-core/src/apiCreateApp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
ComponentPublicInstance
1717
} from './componentPublicInstance'
1818
import { Directive, validateDirectiveName } from './directives'
19-
import { RootRenderFunction } from './renderer'
19+
import { RendererElement, RootRenderFunction } from './renderer'
2020
import { InjectionKey } from './apiInject'
2121
import { warn } from './warning'
2222
import { createVNode, cloneVNode, VNode } from './vnode'
@@ -196,7 +196,7 @@ export type CreateAppFunction<HostElement> = (
196196

197197
let uid = 0
198198

199-
export function createAppAPI<HostElement>(
199+
export function createAppAPI<HostElement extends RendererElement>(
200200
render: RootRenderFunction<HostElement>,
201201
hydrate?: RootHydrateFunction
202202
): CreateAppFunction<HostElement> {

packages/runtime-core/src/renderer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export type RootRenderFunction<HostElement = RendererElement> = (
9090

9191
export interface RendererOptions<
9292
HostNode = RendererNode,
93-
HostElement = RendererElement
93+
HostElement extends RendererElement = RendererElement
9494
> {
9595
patchProp(
9696
el: HostElement,
@@ -145,7 +145,7 @@ export interface RendererElement extends RendererNode {}
145145
// to optimize bundle size.
146146
export interface RendererInternals<
147147
HostNode = RendererNode,
148-
HostElement = RendererElement
148+
HostElement extends RendererElement = RendererElement
149149
> {
150150
p: PatchFn
151151
um: UnmountFn
@@ -295,7 +295,7 @@ export const queuePostRenderEffect = __FEATURE_SUSPENSE__
295295
*/
296296
export function createRenderer<
297297
HostNode = RendererNode,
298-
HostElement = RendererElement
298+
HostElement extends RendererElement = RendererElement
299299
>(options: RendererOptions<HostNode, HostElement>) {
300300
return baseCreateRenderer<HostNode, HostElement>(options)
301301
}
@@ -312,7 +312,7 @@ export function createHydrationRenderer(
312312
// overload 1: no hydration
313313
function baseCreateRenderer<
314314
HostNode = RendererNode,
315-
HostElement = RendererElement
315+
HostElement extends RendererElement = RendererElement
316316
>(options: RendererOptions<HostNode, HostElement>): Renderer<HostElement>
317317

318318
// overload 2: with hydration

packages/runtime-core/src/vnode.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ export type VNodeNormalizedChildren =
133133

134134
export interface VNode<
135135
HostNode = RendererNode,
136-
HostElement = RendererElement,
136+
HostElement extends RendererElement = RendererElement,
137137
ExtraProps = { [key: string]: any }
138138
> {
139139
/**
@@ -613,7 +613,7 @@ export function guardReactiveProps(props: (Data & VNodeProps) | null) {
613613
: props
614614
}
615615

616-
export function cloneVNode<T, U>(
616+
export function cloneVNode<T extends RendererNode, U extends RendererElement>(
617617
vnode: VNode<T, U>,
618618
extraProps?: (Data & VNodeProps) | null,
619619
mergeRef = false

0 commit comments

Comments
 (0)