Skip to content

Commit 58e6345

Browse files
fix(types): propagate type parameter constraints for TypeScript 4.8
1 parent a95554d commit 58e6345

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
@@ -13,7 +13,7 @@ import {
1313
} from './componentOptions'
1414
import { ComponentPublicInstance } from './componentPublicInstance'
1515
import { Directive, validateDirectiveName } from './directives'
16-
import { RootRenderFunction } from './renderer'
16+
import { RendererElement, RootRenderFunction } from './renderer'
1717
import { InjectionKey } from './apiInject'
1818
import { warn } from './warning'
1919
import { createVNode, cloneVNode, VNode } from './vnode'
@@ -174,7 +174,7 @@ export type CreateAppFunction<HostElement> = (
174174

175175
let uid = 0
176176

177-
export function createAppAPI<HostElement>(
177+
export function createAppAPI<HostElement extends RendererElement>(
178178
render: RootRenderFunction,
179179
hydrate?: RootHydrateFunction
180180
): 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
@@ -291,7 +291,7 @@ export const queuePostRenderEffect = __FEATURE_SUSPENSE__
291291
*/
292292
export function createRenderer<
293293
HostNode = RendererNode,
294-
HostElement = RendererElement
294+
HostElement extends RendererElement = RendererElement
295295
>(options: RendererOptions<HostNode, HostElement>) {
296296
return baseCreateRenderer<HostNode, HostElement>(options)
297297
}
@@ -308,7 +308,7 @@ export function createHydrationRenderer(
308308
// overload 1: no hydration
309309
function baseCreateRenderer<
310310
HostNode = RendererNode,
311-
HostElement = RendererElement
311+
HostElement extends RendererElement = RendererElement
312312
>(options: RendererOptions<HostNode, HostElement>): Renderer<HostElement>
313313

314314
// overload 2: with hydration

packages/runtime-core/src/vnode.ts

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

131131
export interface VNode<
132132
HostNode = RendererNode,
133-
HostElement = RendererElement,
133+
HostElement extends RendererElement = RendererElement,
134134
ExtraProps = { [key: string]: any }
135135
> {
136136
/**
@@ -597,7 +597,7 @@ export function guardReactiveProps(props: (Data & VNodeProps) | null) {
597597
: props
598598
}
599599

600-
export function cloneVNode<T, U>(
600+
export function cloneVNode<T extends RendererNode, U extends RendererElement>(
601601
vnode: VNode<T, U>,
602602
extraProps?: (Data & VNodeProps) | null,
603603
mergeRef = false

0 commit comments

Comments
 (0)