Принять общие реквизиты элемента 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 ответ

Встроенные атрибуты HTML

      ---
import type { HTMLAttributes } from 'astro/types';

export interface Props extends HTMLAttributes<'a'> {
  // ...
}

const { 
  ...attrs
} = Astro.props
---

<a {...attrs}>
  <slot />
</a>
Другие вопросы по тегам