Skip to content

Commit a44d528

Browse files
committed
fix(codegen): ensure valid types in genreated code when using global directives
fix #4054
1 parent 12cf9f4 commit a44d528

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

packages/compiler-core/src/codegen.ts

+6-7
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,7 @@ export interface CodegenResult {
6868
}
6969

7070
export interface CodegenContext
71-
extends Omit<
72-
Required<CodegenOptions>,
73-
'bindingMetadata' | 'inline' | 'isTS'
74-
> {
71+
extends Omit<Required<CodegenOptions>, 'bindingMetadata' | 'inline'> {
7572
source: string
7673
code: string
7774
line: number
@@ -98,7 +95,8 @@ function createCodegenContext(
9895
optimizeImports = false,
9996
runtimeGlobalName = `Vue`,
10097
runtimeModuleName = `vue`,
101-
ssr = false
98+
ssr = false,
99+
isTS = false
102100
}: CodegenOptions
103101
): CodegenContext {
104102
const context: CodegenContext = {
@@ -111,6 +109,7 @@ function createCodegenContext(
111109
runtimeGlobalName,
112110
runtimeModuleName,
113111
ssr,
112+
isTS,
114113
source: ast.loc.source,
115114
code: ``,
116115
column: 1,
@@ -466,7 +465,7 @@ function genModulePreamble(
466465
function genAssets(
467466
assets: string[],
468467
type: 'component' | 'directive' | 'filter',
469-
{ helper, push, newline }: CodegenContext
468+
{ helper, push, newline, isTS }: CodegenContext
470469
) {
471470
const resolver = helper(
472471
__COMPAT__ && type === 'filter'
@@ -485,7 +484,7 @@ function genAssets(
485484
push(
486485
`const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${
487486
maybeSelfReference ? `, true` : ``
488-
})`
487+
})${isTS ? `!` : ``}`
489488
)
490489
if (i < assets.length - 1) {
491490
newline()

0 commit comments

Comments
 (0)