}
export interface CodegenContext
- extends Omit<
- Required<CodegenOptions>,
- 'bindingMetadata' | 'inline' | 'isTS'
- > {
+ extends Omit<Required<CodegenOptions>, 'bindingMetadata' | 'inline'> {
source: string
code: string
line: number
optimizeImports = false,
runtimeGlobalName = `Vue`,
runtimeModuleName = `vue`,
- ssr = false
+ ssr = false,
+ isTS = false
}: CodegenOptions
): CodegenContext {
const context: CodegenContext = {
runtimeGlobalName,
runtimeModuleName,
ssr,
+ isTS,
source: ast.loc.source,
code: ``,
column: 1,
function genAssets(
assets: string[],
type: 'component' | 'directive' | 'filter',
- { helper, push, newline }: CodegenContext
+ { helper, push, newline, isTS }: CodegenContext
) {
const resolver = helper(
__COMPAT__ && type === 'filter'
push(
`const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${
maybeSelfReference ? `, true` : ``
- })`
+ })${isTS ? `!` : ``}`
)
if (i < assets.length - 1) {
newline()