diff options
author | 2024-03-26 14:46:02 +0100 | |
---|---|---|
committer | 2024-03-26 14:46:02 +0100 | |
commit | 51a4ea5f723688b4c4745b3e9643d370a48d972d (patch) | |
tree | 565f64916d8812aec47427618622121c16654210 | |
parent | 303cacc05822920503c5b2be80c3c1db51d74a81 (diff) | |
download | astro-51a4ea5f723688b4c4745b3e9643d370a48d972d.tar.gz astro-51a4ea5f723688b4c4745b3e9643d370a48d972d.tar.zst astro-51a4ea5f723688b4c4745b3e9643d370a48d972d.zip |
fix(types): Fixes HTMLAttribute extend to allow everything (#10561)
* fix(types): Fixes HTMLAttribute extend to allow everything
* nit: add types.d.ts file to the list of file to run astrocheck for
* nit: do it some other way
-rw-r--r-- | .github/workflows/check.yml | 1 | ||||
-rw-r--r-- | packages/astro/astro-jsx.d.ts | 8 | ||||
-rw-r--r-- | packages/astro/types.d.ts | 9 |
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']> } >; |