Skip to content

Commit f32598b

Browse files
committed
fix(types): ref returns the correct interface
1 parent ce0517e commit f32598b

2 files changed

Lines changed: 11 additions & 13 deletions

File tree

src/compiler/types/generate-app-types.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,16 @@ export namespace Components {
6666
${modules.map(m => `${m.component}`).join('\n').trim()}
6767
}
6868
69+
declare global {
70+
${jsxElementGlobal}
71+
${modules.map(m => m.element).join('\n')}
72+
interface HTMLElementTagNameMap {
73+
${modules.map(m => `'${m.tagName}': ${m.htmlElementName};`).join('\n')}
74+
}
75+
76+
interface ElementTagNameMap extends HTMLElementTagNameMap {}
77+
}
78+
6979
declare namespace LocalJSX {
7080
${modules.map(m => `${m.jsx}`).join('\n').trim()}
7181
@@ -77,18 +87,6 @@ declare namespace LocalJSX {
7787
export { LocalJSX as JSX };
7888
7989
${jsxAugmentation}
80-
81-
declare global {
82-
${jsxElementGlobal}
83-
84-
${modules.map(m => m.element).join('\n')}
85-
86-
interface HTMLElementTagNameMap {
87-
${modules.map(m => `'${m.tagName}': ${m.htmlElementName};`).join('\n')}
88-
}
89-
90-
interface ElementTagNameMap extends HTMLElementTagNameMap {}
91-
}
9290
`;
9391

9492
const typeImportString = Object.keys(typeImportData).reduce((finalString: string, filePath: string) => {

src/compiler/types/generate-component-types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export function generateComponentTypes(cmp: d.ComponentCompilerMeta): d.TypesMod
3535
tagNameAsPascal,
3636
htmlElementName,
3737
component: `interface ${tagNameAsPascal} {${stencilComponentAttributes}}`,
38-
jsx: `interface ${tagNameAsPascal} extends JSXBase.HTMLAttributes {${stencilComponentJSXAttributes}}`,
38+
jsx: `interface ${tagNameAsPascal} extends JSXBase.HTMLAttributes<${htmlElementName}> {${stencilComponentJSXAttributes}}`,
3939
element: `
4040
interface ${htmlElementName} extends Components.${tagNameAsPascal}, HTMLStencilElement {}
4141
var ${htmlElementName}: {

0 commit comments

Comments
 (0)