【问题标题】:WebStorm typings inferringWebStorm 类型推断
【发布时间】:2017-07-17 01:07:46
【问题描述】:

我正在使用 TypeScript 构建一个库。我创建了声明文件并将 'typings' 选项添加到我的 package.json 中(我也尝试使用 'types')。 现在我的问题是当我尝试安装包时,WebStorm 不会推断类型(例如与它与 Angular2 的工作方式相反)。

好像我的 package.json / 类型丢失了一些东西,所以:

index.d.ts:

declare module 'my-library' {
  export * from "my-library/index";
}

declare module 'my-library/index' {
  export {
    LibraryLogic
  }
  from "my-library/LibraryLogic";
}

declare module 'my-library/LibraryLogic' {
  export class LibraryLogic {
    constructor(someNumber: number);
  }
}

用法:

import { LibraryLogic } from 'my-library';

let a = new LibraryLogic(3);

注意:一切都编译得很好,只是如果 WebStorm 会自动完成它们,程序员使用我的库会更容易。

【问题讨论】:

    标签: typescript webstorm typescript-typings package.json


    【解决方案1】:

    一切都编译得很好,只是如果 WebStorm 能够自动完成它们,程序员使用我的库会更容易。

    • 如果您的库与 TSC 配合良好
    • 只有 WebStorm 需要 declare module 'my-library/index'

    那么请向 WebStorm 提出问题。

    为什么

    Webstorm 在 TypeScript 之上使用自己的封闭源代码智能,stackoverflow 在这里帮不了你。

    它应该适用于 Raw TypeScript(又名 VSCode / alm.tools 等)。

    【讨论】:

      【解决方案2】:

      使用 WebStorm 2016.3.3 对我来说效果很好。

      我的设置:

      1. 在我的项目package.json 中,我添加了"my-library" 作为依赖项
      2. node_modules/my-library/package.json 我有:"types": "./index.d.ts"

      【讨论】:

      • 嗨。感谢您的快速响应。我想知道 WebStorm 是否会自动完成您应该传递给的参数(新的 LibraryLogic(数字))。我的意思是它是否告诉你在类中插入一个名为 x 的数字?
      • 当你从完成中选择new LibraryLogic,或者当你在括号内点击Ctrl+P时,它会显示somenumber:number
      • 不确定我的和你的有什么区别,但我一一按照你的指示,重新评估了 WebStorm 和 Vwalla。谢谢!
      【解决方案3】:

      Typescript 足够聪明,可以找到您的打字文件夹,但 WebStorm 不是。您需要将 @types 文件夹添加到 tsconfig.json 中的 compilerOptions。

        "compilerOptions": {
          "typeRoots": ["node_modules/@types", "./typings"] // <-- Add your typings path here
        },
      

      typeRoots 帮助 typescript 找到您的自定义类型文件夹。最后,仔细检查您的 IDE 是否正在使用您的 tsconfig.json 文件。

      官方文档:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

      【讨论】:

        猜你喜欢
        • 2017-01-26
        • 2013-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 2018-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多