typescript 处理局部类型与全局本机类型的名称冲突

bhmjp9jg  于 2022-12-30  发布在  TypeScript
关注(0)|答案(1)|浏览(211)

假设我想定义NodeChildNode这样的类型/接口,这两个都是全局DOM类型,如果我定义或导入它们,我的本地类型将覆盖本地类型-正如我所期望的。2但是如果我想在一个使用我的自定义类型的文件中使用本地类型呢?是否可以添加一些名称空间或导入具有不同名称的本机类型,以便它们可以共存?

6l7fqoea

6l7fqoea1#

本机类型的别名可以通过在全局命名空间中声明来创建。
global.tstsconfig.jsontypeRoots路径中存在的文件)

declare global {
  type DOMNode = Node;
  type DOMChildNode = ChildNode;
}

这使得DOMNodeDOMChildNode分别作为NodeChildNode的别名在全局可用,这意味着我可以定义自己的类型ChildNode,并且能够在同一个文件中使用DOMChildNode的DOM类型。

type ChildNode = { /* ... */ }

let myNode: ChildNode;
let domNode: DOMChildNode;

这也可以通过本地导入来实现
一个二个一个一个

相关问题