IDE未找到声明的全局类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDE未找到声明的全局类型相关的知识,希望对你有一定的参考价值。
我有一个全局输入文件,我在其中定义我的类型,变量等...
现在项目结构是这样的:
trunk
typings
index.d.ts
src
Example.ts
Example.d.ts
tsconfig.json
在index.d.ts
,我已经说过了
declare type userInfo = {
username: string,
password: string,
}
但是在Example.d.ts
中,当我直接使用userInfo
时,IDE说它无法找到名称,而tsc编译器没有显示错误。
declare class Something {
...
getUserInfo: () => userInfo; // <--- this is highlighted red
}
有趣的是,当我在userInfo
中使用Example.ts
时,没有突出显示的错误。
另一个有趣的事情是,当我go to the declaration
它跳到index.d.ts
纠正线
我不会在两个文件中导入类型,因为它们是global
类型。
我的tsconfig
文件如下:
{
"compilerOptions": {
...
"typeRoots": ["./typings"],
...
},
...
}
可能是什么问题?
答案
你不应该声明类型。当您想要指示全局变量范围中有一些javascript类时,声明很有用(因此,Typescript无法看到它)。例如:
declare class UserInfo {...} // typings.d.ts
现在你应该使用的只是常规的type
type UserInfo = {...} // Example.ts
更好的是,我建议你在你的情况下使用接口,因为UserInfo类型似乎很简单:
// Example.ts
interface UserInfo {
username: string,
password: string,
}
如果你没有得到什么,请随时问我
以上是关于IDE未找到声明的全局类型的主要内容,如果未能解决你的问题,请参考以下文章