IDE未找到声明的全局类型

问题描述 投票:5回答:1

我有一个全局输入文件,我在其中定义我的类型,变量等...

现在项目结构是这样的:

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"],
        ...
    },
    ...
}

可能是什么问题?

typescript types import tsconfig
1个回答
1
投票

你不应该声明类型。当您想要指示全局变量范围中有一些javascript类时,声明很有用(因此,Typescript无法看到它)。例如:

declare class UserInfo {...} // typings.d.ts

现在你应该使用的只是常规的type

type UserInfo = {...} // Example.ts

更好的是,我建议你在你的情况下使用接口,因为UserInfo类型似乎很简单:

// Example.ts
interface UserInfo {
  username: string,
  password: string,
} 

如果你没有得到什么,请随时问我

© www.soinside.com 2019 - 2024. All rights reserved.