【发布时间】:2019-07-10 14:50:21
【问题描述】:
npm tooltip.js 包有一个名为 Tooltip 的默认类 Export。 但是当我在我的 ts 文件中导入该类并在其中打印时说未定义?这个问题的原因是什么?
【问题讨论】:
-
你还需要安装tooltip的类型定义文件
标签: javascript typescript npm
npm tooltip.js 包有一个名为 Tooltip 的默认类 Export。 但是当我在我的 ts 文件中导入该类并在其中打印时说未定义?这个问题的原因是什么?
【问题讨论】:
标签: javascript typescript npm
我也遇到过这个问题,但对于不同的库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",
]
}
【讨论】:
由于您使用的是 Typescript,因此您需要 tooltip.js 的类型声明文件。
原因是 Typescript 要求你在代码中包含变量的类型信息。 JavaScript 代码没有此类型信息,因此当您将 JavaScript 代码文件导入 Typescript 代码文件时,您需要一个 .d.ts 文件来帮助 Typescript 使用该 JavaScript 代码。
现在,如果它是您自己的 JavaScript 代码,您可以简单地编辑它并添加类型注释以符合 Typescript,但您不应该编辑 3rd 方 JavaScript 库。一些库包括它们的类型声明。对于那些不这样做的人,您要么需要自己编写一个 .d.ts 文件,要么使用其他人开源的文件。事实证明,后者是完全可行的。许多流行的第 3 方 JavaScript 文件的类型声明可以在 DefinitelyTyped 找到。
另外,看看this answer。
【讨论】: