Принять общие реквизиты элемента HTML в компоненте TypeScript Astro
Используя Astro с TypeScript, я создаю многократно используемый компонент пользовательского интерфейса. Компонент представляет собой просто оболочку для HTML-тега. Проблема в том, что мне нужно было бы определить интерфейсProps
со всеми общими свойствами HTML для<a>
элемент сам(href
,target
,title
, и т. д.)
Есть ли способ избежать этого в Astro, расширив определенный интерфейс?
---
export interface Props {} // I don't want to define `href`, `target`, etc. by myself here
const props = Astro.props;
---
<a {...props}>
<slot />
</a>
Для справки, это делается в React с использованием таких типов, какReact.HTMLAttributes<HTMLAnchorElement>
1 ответ
---
import type { HTMLAttributes } from 'astro/types';
export interface Props extends HTMLAttributes<'a'> {
// ...
}
const {
...attrs
} = Astro.props
---
<a {...attrs}>
<slot />
</a>