Skip to content

Commit 42bb833

Browse files
Copilotjakebailey
andauthored
Recognize jsxImportSource namespaces in checked JavaScript (#4694)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jakebailey <5341706+jakebailey@users.noreply.github.com>
1 parent dc8e6a8 commit 42bb833

4 files changed

Lines changed: 55 additions & 1 deletion

File tree

internal/compiler/fileloader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) {
547547
}
548548
}
549549

550-
if file.ScriptKind == core.ScriptKindJSX || file.ScriptKind == core.ScriptKindTSX {
550+
if isJavaScriptFile || file.ScriptKind == core.ScriptKindTSX {
551551
jsxImport := ast.GetJSXRuntimeImport(ast.GetJSXImplicitImportBase(optionsForFile, file), optionsForFile)
552552
if jsxImport != "" {
553553
specifier := p.createSyntheticImport(jsxImport, file)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//// [tests/cases/compiler/jsxImportSourceCheckJs.ts] ////
2+
3+
=== /node_modules/preact/jsx-runtime/index.d.ts ===
4+
export namespace JSX {
5+
>JSX : Symbol(JSX, Decl(index.d.ts, 0, 0))
6+
7+
interface Element {}
8+
>Element : Symbol(Element, Decl(index.d.ts, 0, 22))
9+
10+
interface IntrinsicElements {
11+
>IntrinsicElements : Symbol(IntrinsicElements, Decl(index.d.ts, 1, 24))
12+
13+
div: {};
14+
>div : Symbol(IntrinsicElements.div, Decl(index.d.ts, 2, 33))
15+
}
16+
}
17+
18+
=== /index.js ===
19+
<div />;
20+
>div : Symbol(JSX.IntrinsicElements.div, Decl(index.d.ts, 2, 33))
21+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//// [tests/cases/compiler/jsxImportSourceCheckJs.ts] ////
2+
3+
=== /node_modules/preact/jsx-runtime/index.d.ts ===
4+
export namespace JSX {
5+
interface Element {}
6+
interface IntrinsicElements {
7+
div: {};
8+
>div : {}
9+
}
10+
}
11+
12+
=== /index.js ===
13+
<div />;
14+
><div /> : import("preact/jsx-runtime").JSX.Element
15+
>div : any
16+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// @allowJs: true
2+
// @checkJs: true
3+
// @jsx: react-jsx
4+
// @jsxImportSource: preact
5+
// @noEmit: true
6+
// @strict: true
7+
8+
// @filename: /node_modules/preact/jsx-runtime/index.d.ts
9+
export namespace JSX {
10+
interface Element {}
11+
interface IntrinsicElements {
12+
div: {};
13+
}
14+
}
15+
16+
// @filename: /index.js
17+
<div />;

0 commit comments

Comments
 (0)