当前位置: 首页 > 知识库问答 >
问题:

*.d.ts文件从哪里来?

淳于星宇
2023-03-14

我正在学习node.js,使用Visual Studio代码。在我的项目中,我安装了下划线. js,所以我的node_modules文件夹如下所示:

node_modules/
└── underscore
    ├── LICENSE
    ├── package.json
    ├── README.md
    ├── underscore.js
    ├── underscore-min.js
    └── underscore-min.js.map

这是我的索引。js文件:

const _ = require('underscore');
console.log(_.contains([1, 2, 3, 4], 2));

现在,当我按住Ctrl键单击index.js中的< code>contains函数(在Visual Studio代码中表示“转到定义”)时,它不显示< Code > node _ modules/下划线. js中的contains函数。而是打开文件< code>/home/user/。cache/typescript/2.9/node _ modules/@ types/下划线/index.d.ts

这是一个打字稿文件,不是javascript,我不明白它来自哪里?我不认为它是从javascript文件自动生成的,因为js文件中不存在注释。当我执行 npm 安装下划线时,它是否下载到我的计算机上?是否可以转到js文件中的函数定义而不是这个(在VSCode中)?

共有1个答案

充昌勋
2023-03-14

d.ts文件来自这个存储库:https://github.com/DefinitelyTyped/DefinitelyTyped.它们在@类型/包名称下发布,并且应该安装在您作为开发依赖项工作的文件夹中。

也就是说,在您的项目目录中,您将< code > NPM install-save understand ,然后运行< code > NPM install-save-dev @ types/understand 来访问非类型化包的类型定义。

它指向TypeScript缓存的原因与节点模块解析有关。节点查找树上的每个Node_modules文件夹,直到找到匹配项(更多信息:https://medium.freecodecamp.org/requiring-modules-in-node-js-everything-you-need-to-know-e7fbd119be8). 基本上,Node和TypeScript四处查找,找到了@types/underline的缓存版本,只指向那里,而不是项目中本地安装的版本。

 类似资料:
  • 我正在尝试为没有它们的包装提供类型: 我在带有打字稿 2.4.2 的 webpack 中使用 ts-loader,并且在 tsconfig.json 中设置了以下类型根: 我试图模仿: < code>index.d.ts中包含以下内容: 但是错误仍然存在。我做错了什么?我应该把那些自定义的. d.ts文件放在哪里? 和任何其他类型根之间有什么区别?为什么TypeScript会区别对待它们?

  • 本页面被移动到[书写声明文件](./declaration files/Introduction.md)页

  • 当使用外部JavaScript库或新的宿主API时,你需要一个声明文件(.d.ts)定义程序库的shape。 这个手册包含了写.d.ts文件的高级概念,并带有一些例子,告诉你怎么去写一个声明文件。 指导与说明 流程 最好从程序库的文档开始写.d.ts文件,而不是代码。 这样保证不会被具体实现所干扰,而且相比于JS代码更易读。 下面的例子会假设你正在参照文档写声明文件。 命名空间 当定义接口(例如:

  • 问题内容: 给定文件或目录的路径,如何确定该文件的安装点?例如,如果作为文件系统挂载,则给定文件名,我想知道它存储在根目录下。 这将是C ++语言,我希望避免通过调用外部命令。该代码应该健壮-不一定要防止故意的篡改,但绝对要面对嵌套的安装点,符号链接等。 我还没有找到一个简单的系统调用来执行此操作。看来我得自己写支票。这是我计划的粗略概述。 在shell命令中规范化文件名。 怎么样? 与&合作阅读

  • 我用Android Studio创建了一个应用程序,它有一个数据库文件处理程序。我看了几个帖子,到处都是他们说去数据\data\folder获取应用程序文件夹。但我的应用程序没有显示任何文件夹。我必须手动设置要创建的文件位置吗?如何找到database.db文件?

  • 我试图生成一个签名apk,但我总是得到同样的错误。 我无法归档该文件,但我尝试了修改gradle包装器。属性,但我仍然得到相同的错误。 这是我的gradle包装纸。属性文件 我已经尝试过Android Gradle无法为对象堆保留足够的空间