Skip to content

Commit 20b246c

Browse files
committed
Fix getIntrinsicAttributesTypeFromJsxOpeningLikeElement
Use `getIndexTypeOfType`+`getDeclaredTypeOfSymbol` instead of `getIndexInfoOfSymbol`. Fixes microsoft#34730.
1 parent cfefe84 commit 20b246c

File tree

5 files changed

+41
-1
lines changed

5 files changed

+41
-1
lines changed

src/compiler/checker.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22563,7 +22563,8 @@ namespace ts {
2256322563
return links.resolvedJsxElementAttributesType = getTypeOfSymbol(symbol);
2256422564
}
2256522565
else if (links.jsxFlags & JsxFlags.IntrinsicIndexedElement) {
22566-
return links.resolvedJsxElementAttributesType = getIndexInfoOfSymbol(symbol, IndexKind.String)!.type;
22566+
return links.resolvedJsxElementAttributesType =
22567+
getIndexTypeOfType(getDeclaredTypeOfSymbol(symbol), IndexKind.String)!;
2256722568
}
2256822569
else {
2256922570
return links.resolvedJsxElementAttributesType = errorType;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [index.tsx]
2+
declare namespace JSX {
3+
interface IntrinsicElements extends Record<string, any> {}
4+
}
5+
6+
<a />;
7+
8+
9+
//// [index.jsx]
10+
<a />;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== tests/cases/compiler/index.tsx ===
2+
declare namespace JSX {
3+
>JSX : Symbol(JSX, Decl(index.tsx, 0, 0))
4+
5+
interface IntrinsicElements extends Record<string, any> {}
6+
>IntrinsicElements : Symbol(IntrinsicElements, Decl(index.tsx, 0, 23))
7+
>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
8+
}
9+
10+
<a />;
11+
>a : Symbol(JSX.IntrinsicElements, Decl(index.tsx, 0, 23))
12+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
=== tests/cases/compiler/index.tsx ===
2+
declare namespace JSX {
3+
interface IntrinsicElements extends Record<string, any> {}
4+
}
5+
6+
<a />;
7+
><a /> : error
8+
>a : any
9+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @jsx: preserve
2+
3+
// @filename: index.tsx
4+
declare namespace JSX {
5+
interface IntrinsicElements extends Record<string, any> {}
6+
}
7+
8+
<a />;

0 commit comments

Comments
 (0)