【问题标题】:error TS2688: Cannot find type definition file for 'tooltip.js'错误 TS2688:找不到“tooltip.js”的类型定义文件
【发布时间】:2019-07-10 14:50:21
【问题描述】:

npm tooltip.js 包有一个名为 Tooltip 的默认类 Export。 但是当我在我的 ts 文件中导入该类并在其中打印时说未定义?这个问题的原因是什么?

【问题讨论】:

标签: javascript typescript npm


【解决方案1】:

我也遇到过这个问题,但对于不同的库jspdf。在我的例子中,我的tsconfig.app.json 文件有一个 jspdf 包含在 compilerOptions 的类型数组中。

我不确定它是如何到达那里的,但删除它可以解决问题。

我基本上把 src/tsconfig.app.json 文件从

改了
{
  "extends": "../tsconfig.json",
  "compilerOptions": {
  "outDir": "../out-tsc/app",
  // "allowJs":true,
  "baseUrl": "./",
  "module": "es2015",
   "types": [
           "node","jspdf"
           ]
   },
  "exclude": [
    "test.ts",
    "**/*.spec.ts",
  ]
}

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
  "outDir": "../out-tsc/app",
  // "allowJs":true,
  "baseUrl": "./",
  "module": "es2015",
   "types": [
           "node"
           ]
   },
  "exclude": [
    "test.ts",
    "**/*.spec.ts",
  ]
}

【讨论】:

    【解决方案2】:

    由于您使用的是 Typescript,因此您需要 tooltip.js 的类型声明文件。

    原因是 Typescript 要求你在代码中包含变量的类型信息。 JavaScript 代码没有此类型信息,因此当您将 JavaScript 代码文件导入 Typescript 代码文件时,您需要一个 .d.ts 文件来帮助 Typescript 使用该 JavaScript 代码。

    现在,如果它是您自己的 JavaScript 代码,您可以简单地编辑它并添加类型注释以符合 Typescript,但您不应该编辑 3rd 方 JavaScript 库。一些库包括它们的类型声明。对于那些不这样做的人,您要么需要自己编写一个 .d.ts 文件,要么使用其他人开源的文件。事实证明,后者是完全可行的。许多流行的第 3 方 JavaScript 文件的类型声明可以在 DefinitelyTyped 找到。

    另外,看看this answer

    【讨论】:

      猜你喜欢
      • 2021-05-14
      • 1970-01-01
      • 2022-10-20
      • 2018-02-24
      • 2018-03-09
      • 2019-05-11
      • 2018-07-23
      • 2017-09-08
      • 2019-10-10
      相关资源
      最近更新 更多