我有一个全局输入文件,可以在其中定义类型,变量等...
现在项目结构如下:
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"],
...
},
...
}
可能是什么问题?
答案 0 :(得分:1)
您不应声明类型。当您要指出全局变量范围中有一些 javascript 类(因此,Typescript无法看到它)时,声明很有用。例如:
declare class UserInfo {...} // typings.d.ts
现在您应该使用的只是常规type
type UserInfo = {...} // Example.ts
更好的是,我建议您使用界面,因为UserInfo类型似乎很简单:
// Example.ts
interface UserInfo {
username: string,
password: string,
}
请随时问我您是否没得到东西