在@ types / urijs中,存在引用HTMLElement
new (value?: string | URIOptions | HTMLElement): URI;
如果我不想在HTMLElement
中包含lib:dom
,是否可以忽略tsconfig.json
类型?
本地理想的类型是string | URIOptions
答案 0 :(得分:2)
有人提议支持here中所述的占位符类型。不幸的是,它尚未实现
您需要创建一种前向声明接口,以满足该库中的类型:
declare global {
interface HTMLElement {}
}
现在,这确实意味着您将拥有一个名为HTMLElement
的全局空接口,这可能会导致其他问题,因为HTMLElement
是空对象类型({}
),其他任何类型的接口可分配给它。
另一种选择是将HTMLElement
声明为never
:
declare global {
type HTMLElement = never
}
尽管这将与为HTMLElement
界面添加增强功能的模块不兼容。
一个不错的折衷办法是在接口中声明一个防护属性,以确保它与其他类型不兼容:
declare global {
interface HTMLElement {
guard: "DO NOT INSTANTIATE"
}
}