如何使用我自己的声明文件解决“无法找到模块的声明文件”错误?

2024-04-28

我有一个测试项目,正在其中测试类型定义文件。该项目有一个文件名为index.ts看起来像这样:

import i18nFu = require("gettext.js");

The 获取文本.js包是使用 Node.js 安装的,如下所示:npm install gettext.js

VS Code 针对上面的行显示以下错误消息:

找不到模块“gettext.js”的声明文件。

“SOME_PATH/gettext.js”隐式具有“any”类型。

尝试“npm install @types/gettext.js”(如果存在)或添加包含“declare module 'gettext.js';”的新声明 (.d.ts) 文件

安装@types/gettext.js模块确实解决了问题。但我很好奇,所以我没有就此止步。我删除了@types/gettext.js再次模块并尝试自己创建声明文件。

我创建一个名为的子文件夹types/gettext.js在我的项目文件夹中并复制旧的内容node_modules/@types/gettext.js文件夹放入其中。我还添加了一个typeRoots进入我的tsconfig.json文件,所以它看起来像这样:

{
    "compilerOptions": {
        "lib": ["ES2017"],
        "module": "commonjs",
        "strict": true,
        "target": "es5",
        "typeRoots": ["./types", "./node_modules/@types"],
    },
    "files": ["test.ts"]
}

但错误消息不会消失。替换内容types/gettext.js/index.d.ts file (你可以在这里看到 https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/gettext.js/index.d.ts) with declare module 'gettext.js'(如错误消息所示)确实消除了错误。但这不是拥有类型的解决方案。我缺少什么?

PS:我对解决黑客解决方案不感兴趣,例如使用ts-ignore或设置noImplicitAny to false.


我通过设置解决了这个问题baseUrl编译器选项。有趣的是我不需要typeRoots现在根本没有选项可以成功编译并运行。这是新的tsconfig.json file:

{
    "compilerOptions": {
        "lib": ["ES2017"],
        "module": "commonjs",
        "strict": true,
        "target": "es5",
        "baseUrl": "./types"
    },
    "files": ["tests.ts"]
}

我希望这可以帮助遇到同样问题的人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用我自己的声明文件解决“无法找到模块的声明文件”错误? 的相关文章

随机推荐

  • Android 分享 Facebook 意图 - 分享文本和链接

    我正在尝试使用 Android 共享意图在 Facebook 上发布内容 它看起来像这样 shareIntent setFlags Intent FLAG ACTIVITY NEW TASK shareIntent setType text
  • Amazon EC2 微型实例没有响应

    我有几个微型实例 几周以来一直运行良好 两者都运行 WordPress 博客 在过去 24 小时内 其中一个已经停止 即使重新启动后我也无法 ssh 登录 另一个实例工作正常 ssh connect to host ec2 xxx xxx
  • Codeigniter 活动记录选择、左连接、计数

    我有一个显示数据库查询结果的表单 这些结果可以有许多其他资产与之相连 我想找到一种方法来显示每个元素有多少资产 例如 我的表是英格兰地区 另一个表是用户居住的地方 我当前有这个代码 this gt db gt select this gt
  • WordPress 评论回复链接不出现

    我正在使用自定义代码来打印评论 但问题是无论我做什么 我都无法在任何评论下打印评论回复链接 这是代码
  • AWS IOT 连接超时异常

    AWSIoTPythonSDK exception AWSIoTExceptions connectTimeoutException 在我的机器上运行示例 python 代码后 我收到此异常 参考了github的例子 https githu
  • Visual Studio 2013 设计器尝试加载错误版本的项目 DLL

    我的解决方案中有一个 Visual Studio 项目 它引用同一解决方案中的类库项目 该项目编译并执行得很好 但是 当我尝试在设计器中打开一个表单时 我收到一条消息 无法加载文件或程序集 MyLibName Version 1 0 547
  • 获取标签包含 GROUP_CONCAT 字段的所有文章

    我有一张桌子articles 其他tags 第三个称为article tags 我想生成一个页面 其中列出特定标签的所有文章 我的查询如下所示 SELECT headline GROUP CONCAT tags tag name AS al
  • 在 Selenium 的特定位置打印网页

    我有这个代码可以转到 Google 并将页面转换为 PDF Program to go to Google and convert the page to a PDF But it saves in my downloads folder
  • 添加“通过电子邮件分享”链接到网站

    我有一个在 Dreamweaver CS4 中构建的 HMTL CSS 网站 我想添加一个指向该网站的 通过电子邮件共享 链接 这样任何点击它的人都可以轻松地将指向该网站的链接发送给他们选择的收件人 我想要其中一个信封图标 但最好可以自定义
  • 如何使用 NPAPI 将 Delphi VCL 表单嵌入到 HTML 页面中?

    使用 Delphi 编写 ActiveX 插件的方法有很多 但 ActiveX 本身在 IE 以外的浏览器中存在很多限制 所以我在想 如何编译一个 NPAPI 格式的插件 原生兼容 Chrome Firefox 该插件的目的是允许将 VCL
  • UnsupportedOperationException:尝试从与某个不关联的上下文获取显示

    我在实时应用程序上遇到 UnsupportedOperationException 崩溃 所有崩溃都与 Moto Android 11 设备相关 可以看到它和onKeyUp有某种关系 但仍然不知道如何重现或解决这个问题 任何帮助 将不胜感激
  • GitHub 操作 - 如何参数化容器映像主机名

    我有一个 GitHub 操作 其工作流程使用容器来运行它 并使用私有 docker 注册表 myhostname com 见下文 jobs myjob name My Job runs on some tag on runners cont
  • 格式化时间戳

    如何将 Rails 时间戳格式化为更易于理解的格式 如果我只是打印出来created at or updated at在我看来是这样的 然后我会得到 2009 03 27 23 53 38 世界标准时间 The strftime http
  • 如何在 MVC 3 Razor View Engine 中使用 C# 显示和隐藏 Div?

    我必须编写 C 代码来在 MVC3 中显示和隐藏 div 以用于基于 C 中的 switch case 的各种控件 如何在不使用 JQuery Show 或 hide 的情况下完成它 但在完全服务器端 将 switch 语句直接添加到 cs
  • Google Apps onEdit 事件 - event.source 未定义

    Google 文档允许编写脚本 当单元格内容与特定单词匹配时 我试图更改单元格的颜色 我的问题是 onEdit 函数没有按照此处指定的方式工作 https developers google com apps script guide ev
  • 未找到神奇函数“bash”

    我有一堆模拟想要在高性能集群上运行 我应该在这些集群上进行预留以获得计算时间 由于预订是有时间限制的 我正在开发一个自动化脚本 我可以scp进入集群并运行 然后 该脚本将下载相关的模拟文件 运行它们 并上传结果 该自动化脚本的一部分位于ba
  • 转义 C++ 字符串

    将 C std string 转换为另一个 std string 的最简单方法是什么 它转义了所有不可打印的字符 例如 对于两个字符的字符串 0x61 0x01 结果字符串可能是 a x01 或 a 01 看看Boost的字符串算法库 ht
  • 在 getElementsByClassName 的数组上使用 forEach 会导致“TypeError: undefined is not a function”

    In 我的 JSFiddle http jsfiddle net jer2 zcrh9 3 我只是想迭代一个元素数组 正如日志语句所证明的那样 该数组非空 然而 呼叫forEach给了我 不太有帮助 未捕获TypeError undefin
  • Emacs lisp:将字符翻译为标准 ASCII 转录

    我正在尝试编写一个函数 将包含 unicode 字符的字符串转换为某种默认的 ASCII 转录 理想情况下 我想要例如 ngstr m成为Angstroem或者 如果不可能的话 Angstrom 同样地 应该成为a x c 或类似的 Ema
  • 如何使用我自己的声明文件解决“无法找到模块的声明文件”错误?

    我有一个测试项目 正在其中测试类型定义文件 该项目有一个文件名为index ts看起来像这样 import i18nFu require gettext js The 获取文本 js包是使用 Node js 安装的 如下所示 npm ins