summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/check.yml1
-rw-r--r--packages/astro/astro-jsx.d.ts8
-rw-r--r--packages/astro/types.d.ts9
3 files changed, 12 insertions, 6 deletions
diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index d6cf3b2a7..c1b491990 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -13,6 +13,7 @@ on:
- "scripts/smoke/check.js"
- "packages/astro/src/@types/astro.ts"
- "pnpm-lock.yaml"
+ - "packages/astro/types.d.ts"
env:
ASTRO_TELEMETRY_DISABLED: true
diff --git a/packages/astro/astro-jsx.d.ts b/packages/astro/astro-jsx.d.ts
index 5a5ee14db..869e64d5c 100644
--- a/packages/astro/astro-jsx.d.ts
+++ b/packages/astro/astro-jsx.d.ts
@@ -526,7 +526,7 @@ declare namespace astroHTML.JSX {
| 'search'
| 'send'
| undefined
- | null;
+ | null;
exportparts?: string | undefined | null;
hidden?: boolean | string | undefined | null;
id?: string | undefined | null;
@@ -584,6 +584,9 @@ declare namespace astroHTML.JSX {
results?: number | string | undefined | null;
security?: string | undefined | null;
unselectable?: 'on' | 'off' | undefined | null; // Internet Explorer
+
+ // Allow data- attribute
+ [key: `data-${string}`]: any;
}
type HTMLAttributeReferrerPolicy =
@@ -1344,6 +1347,9 @@ declare namespace astroHTML.JSX {
yChannelSelector?: string | undefined | null;
z?: number | string | undefined | null;
zoomAndPan?: string | undefined | null;
+
+ // Allow data- attribute
+ [key: `data-${string}`]: any;
}
interface DefinedIntrinsicElements {
diff --git a/packages/astro/types.d.ts b/packages/astro/types.d.ts
index eaf3f30c6..3069f502b 100644
--- a/packages/astro/types.d.ts
+++ b/packages/astro/types.d.ts
@@ -9,18 +9,17 @@ export type HTMLTag = keyof astroHTML.JSX.DefinedIntrinsicElements;
export type HTMLAttributes<Tag extends HTMLTag> = Omit<
astroHTML.JSX.IntrinsicElements[Tag],
keyof Omit<AstroBuiltinAttributes, 'class:list'>
-> & {
- [key: string]: string | number | boolean | null | undefined;
-};
+>;
/**
* All the CSS properties available, as defined by the CSS specification
*/
export type CSSProperty = keyof astroHTML.JSX.KebabCSSDOMProperties;
-type PolymorphicAttributes<P extends { as: HTMLTag }> = Omit<P & HTMLAttributes<P['as']>, 'as'> & {
+type PolymorphicAttributes<P extends { as: HTMLTag }> = Omit<P, 'as'> & {
as?: P['as'];
-};
+} & HTMLAttributes<P['as']>;
+
export type Polymorphic<P extends { as: HTMLTag }> = PolymorphicAttributes<
Omit<P, 'as'> & { as: NonNullable<P['as']> }
>;