如何防止Typescript优先于导入的全局类型

如何防止Typescript优先于导入的全局类型,typescript,Typescript,因此,对于我的Typescript代码,我想引入一个名为Account的接口,它显然包含与帐户相关的信息 到目前为止,它一直存在于“Account.d.ts”中,并且工作得很好,但我最近才发现,对于typescript,.d.ts并不是一种正确的方式,我想将它更改为一个适当的“Account.ts”类中的导出接口 这就是它现在的样子: export default interface Account { userName: string; email: string; p

因此,对于我的Typescript代码,我想引入一个名为
Account
的接口,它显然包含与帐户相关的信息

到目前为止,它一直存在于“Account.d.ts”中,并且工作得很好,但我最近才发现,对于typescript,.d.ts并不是一种正确的方式,我想将它更改为一个适当的“Account.ts”类中的导出接口

这就是它现在的样子:

export default interface Account {
    userName: string;
    email: string;
    profilePicturePath: string;
    lastAccessedAt: Date;
    id: string;
}
到目前为止还不错。在此之前,我还遇到了另一个问题,即存在另一个名为“Account”的类型,它定义在一个名为
lib.dom.d.ts
的文件中,Typescript和声明不断地提取该类型,并将其与我的类型合并

现在,通过我的新Account.ts,我做到了:

import Account from "Definitions/Account";

interface IProps {
    account: Account;
}
但这是行不通的。Typescript仍然选择
lib.dom.d.ts
中的
帐户作为这里的正确帐户类型,我不知道如何让Typescript识别哪个是正确的帐户类型。如果可能的话,我只想忽略这个外部定义,它与我的代码没有任何关系


有什么帮助吗?

这可能是由于缓存行为导致的IDE问题。您应该能够通过重新启动TypeScript语言服务器来清除IDE中的缓存

Visual Studio代码
  • 打开命令选项板(Ctrl+Shift+P)
  • 运行命令TypeScript:重新启动TS服务器
TSConfig 您还可以尝试修改TypeScript配置以排除某些包的类型定义:

仅使用指定路径中的类型
{
“编译器选项”:{
“类型根”:[“/打字”]
}
}
仅使用指定包中的类型
{
“编译器选项”:{
“类型”:[“节点”、“lodash”、“express”]
}
}
排除所有外部包
{
“编译器选项”:{/*…*/},
“排除”:[
“节点_模块”
]
}

这可能是由于缓存行为导致的IDE问题。您应该能够通过重新启动TypeScript语言服务器来清除IDE中的缓存

Visual Studio代码
  • 打开命令选项板(Ctrl+Shift+P)
  • 运行命令TypeScript:重新启动TS服务器
TSConfig 您还可以尝试修改TypeScript配置以排除某些包的类型定义:

仅使用指定路径中的类型
{
“编译器选项”:{
“类型根”:[“/打字”]
}
}
仅使用指定包中的类型
{
“编译器选项”:{
“类型”:[“节点”、“lodash”、“express”]
}
}
排除所有外部包
{
“编译器选项”:{/*…*/},
“排除”:[
“节点_模块”
]
}