Skip to content

Commit

Permalink
fix: don't reference template types if component have no any slot
Browse files Browse the repository at this point in the history
close #1708
  • Loading branch information
johnsoncodehk committed Aug 27, 2022
1 parent 6f79f8f commit 28e8f92
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
7 changes: 6 additions & 1 deletion packages/vue-language-core/src/generators/script.ts
Expand Up @@ -431,7 +431,12 @@ export function generate(

writeTemplate();

codeGen.addText(`return {} as typeof __VLS_Component & (new () => { ${getSlotsPropertyName(vueVersion)}: ReturnType<typeof __VLS_template> });\n`);
if (htmlGen?.slotsNum) {
codeGen.addText(`return {} as typeof __VLS_Component & (new () => { ${getSlotsPropertyName(vueVersion)}: ReturnType<typeof __VLS_template> });\n`);
}
else {
codeGen.addText(`return {} as typeof __VLS_Component;\n`);
}

codeGen.addText(`};\n`);
codeGen.addText(`return await __VLS_setup();\n`);
Expand Down
3 changes: 3 additions & 0 deletions packages/vue-language-core/src/generators/template.ts
Expand Up @@ -90,6 +90,7 @@ export function generate(
const identifiers = new Set<string>();
const scopedClasses: { className: string, offset: number; }[] = [];
const blockConditions: string[] = [];
let slotsNum = 0;

tsFormatCodeGen.addText('export { };\n');

Expand Down Expand Up @@ -246,6 +247,7 @@ export function generate(
}
tsCodeGen.addText(`{\n`);
for (const [name, slot] of slots) {
slotsNum++;
writeObjectProperty(
name,
slot.loc,
Expand All @@ -270,6 +272,7 @@ export function generate(
cssCodeGen: cssCodeGen,
tagNames: tagOffsetsMap,
identifiers,
slotsNum,
};

function visitNode(node: CompilerDOM.TemplateChildNode, parentEl: CompilerDOM.ElementNode | undefined): void {
Expand Down

0 comments on commit 28e8f92

Please sign in to comment.