diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index cb64a3c5cf..e3f4644b0b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -22563,7 +22563,8 @@ namespace ts { return links.resolvedJsxElementAttributesType = getTypeOfSymbol(symbol); } else if (links.jsxFlags & JsxFlags.IntrinsicIndexedElement) { - return links.resolvedJsxElementAttributesType = getIndexInfoOfSymbol(symbol, IndexKind.String)!.type; + return links.resolvedJsxElementAttributesType = + getIndexTypeOfType(getDeclaredTypeOfSymbol(symbol), IndexKind.String)!; } else { return links.resolvedJsxElementAttributesType = errorType; diff --git a/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.js b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.js new file mode 100644 index 0000000000..212897a20b --- /dev/null +++ b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.js @@ -0,0 +1,10 @@ +//// [index.tsx] +declare namespace JSX { + interface IntrinsicElements extends Record {} +} + +; + + +//// [index.jsx] +; diff --git a/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.symbols b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.symbols new file mode 100644 index 0000000000..00c6f9fe7d --- /dev/null +++ b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/index.tsx === +declare namespace JSX { +>JSX : Symbol(JSX, Decl(index.tsx, 0, 0)) + + interface IntrinsicElements extends Record {} +>IntrinsicElements : Symbol(IntrinsicElements, Decl(index.tsx, 0, 23)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +} + +; +>a : Symbol(JSX.IntrinsicElements, Decl(index.tsx, 0, 23)) + diff --git a/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.types b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.types new file mode 100644 index 0000000000..a4f4476080 --- /dev/null +++ b/tests/baselines/reference/jsxIntrinsicElementsExtendsRecord.types @@ -0,0 +1,9 @@ +=== tests/cases/compiler/index.tsx === +declare namespace JSX { + interface IntrinsicElements extends Record {} +} + +; +> : error +>a : any + diff --git a/tests/cases/compiler/jsxIntrinsicElementsExtendsRecord.tsx b/tests/cases/compiler/jsxIntrinsicElementsExtendsRecord.tsx new file mode 100644 index 0000000000..ee78e24976 --- /dev/null +++ b/tests/cases/compiler/jsxIntrinsicElementsExtendsRecord.tsx @@ -0,0 +1,8 @@ +// @jsx: preserve + +// @filename: index.tsx +declare namespace JSX { + interface IntrinsicElements extends Record {} +} + +;