【问题标题】:working 'types' definition files, anyone?工作“类型”定义文件,有人吗?
【发布时间】:2019-09-03 14:24:18
【问题描述】:

我们在一个大型 Angular 项目中使用 Tabulator-tables,我似乎找不到可用的定义文件。

我已经尝试过https://www.npmjs.com/package/@types/tabulator-tables,它似乎已更新等,但它会导致我的 IDE 中出现很多错误,因此项目将无法编译。即使在我添加类型包之前编译工作也有很多错误。添加许多@ts-ignore cmets 毫无意义且不切实际。

请注意 - 我注意到使用与我的项目中安装的相同版本的类型定义包 (v4.2.2)。我认为问题在于上述包的自动生成 - 结果是生成的 .d.ts 文件不可用。

如果我错了,请纠正我,我们将不胜感激在集成定义文件方面的任何帮助。蒂亚!

【问题讨论】:

  • 你试过直接使用这个库吗? npmjs.com/package/tabulator-tables
  • 所以当我在我的 Angular 项目(它的 Angular)中执行 import * as Tabulator from 'tabulator-tables'; 时,我会得到“Tabulator”类型。但是如何获取例如 CellComponent 类型?
  • 据我所知,它没有类型定义
  • 据我所知 - 你是对的。

标签: javascript tabulator


【解决方案1】:

我在 Angular 项目中添加 TypeScript 类型时遇到了类似的问题,这就是我所做的:

  1. 在 Angular 组件中封装制表符(在我的例子中是 data-grid.component.ts);
  2. npm install @types/tabulator-tables
  3. 创建的文件 data-grid.component.d.ts 使用:
    declare module 'tabulator-tables' {
      export = Tabulator;
    }
  1. 关键:从文件 data-grid.component.ts 中删除 import Tabulator from 'tabulator-tables'

它成功了。

【讨论】:

  • 我无法再测试您的解决方案,但看起来值得一试。谢谢!
【解决方案2】:

完整的 TypeScript 类型可以在 @types/tabulator-tables npm 包中找到

npm install @types/tabulator-tables

可以在here找到如何在项目中使用类型的示例

Language Documentation 包含有关可用类型的更多信息

【讨论】:

    【解决方案3】:

    我已经为这个问题写了一个答案,在我看来还不够好,但有些人认为它是正确的,所以我决定保持原样并写一个新的。

    为制表符添加类型存在一些问题,这是因为类型注释没有被导出,但有一种方法可以使用它们。

    在为制表符(npm install --save @types/tabulator-tables)安装类型后,您应该打开(或创建它,如果它不存在)目录index.d.ts 内的目录src,并将以下代码复制到其中:

    declare module 'tabulator-tables' {
      export = Tabulator;
    }
    

    您需要确保在文件tsconfig.jsontsconfig.app.json(取决于您的项目)的compilerOptions 内有"allowSyntheticDefaultImports": true(取决于您的项目)和tsconfig.spec.ts(它需要用于单元测试)。

    非常重要在编辑 tsconfig 后卸载并重新开始 ng serve

    之后,所有类型都应该可以工作。以防万一我创建了简单的Angular example,希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 2021-04-19
      • 2010-09-30
      • 2010-10-25
      相关资源
      最近更新 更多