【发布时间】:2022-12-18 11:30:40
【问题描述】:
我目前在 Typescript/JSX 中使用一个 web 组件,它没有 Typescript 声明(我对 TS 和 JSX 很陌生)。
但是我的组件没有使用记录的[elemName: string]: any;:
declare global {
namespace JSX {
interface IntrinsicElements {
[elemName: string]: any;
}
}
};
或者调整后的版本:
interface IntrinsicElements {
"my-external-component": {[attribute: string]: any};
}
我希望有一个相当具体的通用 HTMLElement 类型,它像这样相交:
interface MyExternalComponent {
"api-key": string
}
declare global {
namespace JSX {
interface IntrinsicElements {
"my-external-component": MyExternalComponent & BaseHTMLElement;
}
}
};
然后将所有官方 HTMLElement 属性描述并提供为键值对。
BaseHTMLElement 之类的东西是否存在,或者我是否必须自己从头开始定义它,就像我在其他库中看到的那样?或者在任何现有库中是否有任何相当通用的声明,我可以在不引入库特定的东西的情况下重用?
【问题讨论】:
标签: javascript typescript jsx typescript-typings web-component