【问题标题】:import JavaScript module in angular nx project在 Angular nx 项目中导入 JavaScript 模块
【发布时间】:2021-12-03 11:10:54
【问题描述】:

我有一个使用 nx 构建的 Angular 项目我想导入没有打字稿类型的标准 JavaScript 库,例如我想安装和使用 cytoscapecytoscape-context-menus

我得到编译错误,例如

错误 TS7016:找不到模块的声明文件 'cytoscape 上下文菜单'。 'C:/dev/armo/armo-ng-app/node_modules/cytoscape-context-menus/cytoscape-context-menus.js' 隐含地具有“任何”类型。尝试npm i --save-dev @types/cytoscape-context-menus(如果存在)或添加新声明 (.d.ts) 文件包含declare module 'cytoscape-context-menus';

我该如何解决?我试图放置声明文件,但我认为我的设置没有看到它们。

【问题讨论】:

    标签: javascript angular nrwl-nx nrwl


    【解决方案1】:

    由于没有可用的类型定义 npm 包,您必须自己编写。从你需要的开始,然后根据需要继续在它之上构建。

    如果您愿意,也可以将其作为 npm 包共享。

    发现这篇文章由@dubtypescript编写TypeScript类型定义文件:http://blog.wolksoftware.com/contributing-to-definitelytyped

    还可以从这里看看细胞镜是如何打字的,借用他们的方法:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/cytoscape/index.d.ts

    在结帐时添加了堆栈闪电战:

    https://stackblitz.com/edit/cytoscape-6cyuem?file=src%2Fapp%2Fcytoscape-context-menus.d.ts

    【讨论】:

    • 谢谢,但没有用。有些人在“DefinitelyTyped”中没有打字。我也尝试添加 .d.ts 文件,但仍然出现编译错误
    • @canbax 添加了一个 stackblitz 来查看
    • 感谢您的努力,但对我来说最重要的是tsconfig.json 文件。 Stackblitz 没有那个文件。另外,我不能使用@types/cytoscape。它破坏了我的应用程序中的很多事情,因为我没有对很多事情使用类型定义
    • 应该可以下载 stackblitz 项目并检查 tsconfigs。尽管它仍应与标准角度应用程序一起使用。您也可以以类似的方式手动键入 cytoscope。
    • 我仍然收到错误消息。问题在于 nx 项目的架构。我真的不明白如何添加类型。
    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2021-04-13
    • 2021-02-26
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多