Skip to content

Commit f35461a

Browse files
authored
Merge pull request #214 from github/add-jsx-intrinsicelement-types
add JSX IntrinsicElement types
2 parents 223bc5d + b66d687 commit f35461a

File tree

5 files changed

+38
-0
lines changed

5 files changed

+38
-0
lines changed

.eslintrc.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"import/no-unresolved": "off"
77
},
88
"overrides": [
9+
{
10+
"files": "src/*-define.ts",
11+
"rules": {
12+
"@typescript-eslint/no-namespace": "off"
13+
}
14+
},
915
{
1016
"files": "test/**/*.js",
1117
"rules": {

src/local-time-element-define.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ try {
1313
}
1414
}
1515

16+
type JSXBaseElement = JSX.IntrinsicElements extends {span: unknown}
17+
? JSX.IntrinsicElements['span']
18+
: Record<string, unknown>
1619
declare global {
1720
interface Window {
1821
LocalTimeElement: typeof LocalTimeElement
1922
}
2023
interface HTMLElementTagNameMap {
2124
'local-time': LocalTimeElement
2225
}
26+
namespace JSX {
27+
interface IntrinsicElements {
28+
['local-time']: JSXBaseElement & Partial<Omit<LocalTimeElement, keyof HTMLElement>>
29+
}
30+
}
2331
}
2432

2533
export default LocalTimeElement

src/relative-time-element-define.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ try {
1313
}
1414
}
1515

16+
type JSXBaseElement = JSX.IntrinsicElements extends {span: unknown}
17+
? JSX.IntrinsicElements['span']
18+
: Record<string, unknown>
1619
declare global {
1720
interface Window {
1821
RelativeTimeElement: typeof RelativeTimeElement
1922
}
2023
interface HTMLElementTagNameMap {
2124
'relative-time': RelativeTimeElement
2225
}
26+
namespace JSX {
27+
interface IntrinsicElements {
28+
['relative-time']: JSXBaseElement & Partial<Omit<RelativeTimeElement, keyof HTMLElement>>
29+
}
30+
}
2331
}
2432

2533
export default RelativeTimeElement

src/time-ago-element-define.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ try {
1313
}
1414
}
1515

16+
type JSXBaseElement = JSX.IntrinsicElements extends {span: unknown}
17+
? JSX.IntrinsicElements['span']
18+
: Record<string, unknown>
1619
declare global {
1720
interface Window {
1821
TimeAgoElement: typeof TimeAgoElement
1922
}
2023
interface HTMLElementTagNameMap {
2124
'time-ago': TimeAgoElement
2225
}
26+
namespace JSX {
27+
interface IntrinsicElements {
28+
['time-ago']: JSXBaseElement & Partial<Omit<TimeAgoElement, keyof HTMLElement>>
29+
}
30+
}
2331
}
2432

2533
export default TimeAgoElement

src/time-until-element-define.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,21 @@ try {
1313
}
1414
}
1515

16+
type JSXBaseElement = JSX.IntrinsicElements extends {span: unknown}
17+
? JSX.IntrinsicElements['span']
18+
: Record<string, unknown>
1619
declare global {
1720
interface Window {
1821
TimeUntilElement: typeof TimeUntilElement
1922
}
2023
interface HTMLElementTagNameMap {
2124
'time-until': TimeUntilElement
2225
}
26+
namespace JSX {
27+
interface IntrinsicElements {
28+
['time-until']: JSXBaseElement & Partial<Omit<TimeUntilElement, keyof HTMLElement>>
29+
}
30+
}
2331
}
2432

2533
export default TimeUntilElement

0 commit comments

Comments
 (0)