键入基本 HTML 标签?

Type for basic HTML tags?

我有一个名为 Tags 的导出类型,它定义了一些组件的可用标签:

export type Tags =
  | 'div'
  | 'article'
  | 'section'
  | 'aside'
  | 'nav'
  | 'figure'
  | 'main'
  | 'header'
  | 'footer';

显然,这是我自己写的东西,我想添加标签时必须随时更新;这样的东西已经存在了吗?类似于 React 的 HTMLAttributeAnchorTarget?

查看 React 的 index.d.ts,我看到一个 interface ReactHTML 看起来包含许多(且仅)built-in HTML 标签作为键。对象类型的值是 DetailedHTMLFactorys,但你可以忽略这些,只看键。

import { ReactHTML } from 'react';

type BuiltInHTMLTag = keyof ReactHTML;
const div: BuiltInHTMLTag = 'div'; // OK
const nope: BuiltInHTMLTag = 'doesntexist'; // Error