我试图添加到项目中的任何第三方Vue.js库都会引发以下错误:
Could not find a declaration file for module 'vue-xxx'我尝试过'vue-treeselect‘、'vue-select’、'vue-multiselect‘,结果大致相同(*这些库不允许import Modulename from,但需要const Modulename = require)。
我在"dependencies": {下在package.json中添加了这些内容。
我正在使用dotnet为Vue.js提供的SPA模板。
使用“树-选择”的完整示例
import Treeselect from 'vue-treeselect';
/* ... */
value = null;
source = [
{
id: 'node-1',
label: 'Node 1',
children: [
{
id: 'node-1-a',
label: 'Node 1-A',
}
]
},
{
id: 'node-2',
label: 'Node 2',
}
];
/* ... */
<treeselect v-model="value"
:multiple="true"
:options="source" />错误:
in [at-loader] ./ClientApp/components/mycomponent/mycomponent.ts:10:24
TS7016: Could not find a declaration file for module 'vue-treeselect'. 'path/to/project/node_modules/vue-treeselect/dist/vue-treeselect.js' implicitly has an 'any' type.package.json
{
"name": "MyProject",
"private": true,
"version": "0.0.0",
"dependencies": {
"dygraphs": "^2.1.0",
"ol3-layerswitcher": "^1.1.2",
"vue-treeselect": "^1.0.6"
},
"devDependencies": {
"@types/dygraphs": "^1.1.6",
"@types/webpack-env": "^1.13.0",
"@types/vue": "^2.0.0",
"aspnet-webpack": "^2.0.1",
"awesome-typescript-loader": "^3.0.0",
"bootstrap": "^3.3.6",
"css-loader": "^0.25.0",
"event-source-polyfill": "^0.0.7",
"extract-text-webpack-plugin": "^2.0.0-rc",
"file-loader": "^0.9.0",
"isomorphic-fetch": "^2.2.1",
"jquery": "^3.1.1",
"style-loader": "^0.13.1",
"typescript": "^2.2.1",
"url-loader": "^0.5.7",
"vue": "^2.5.13",
"vue-loader": "^14.2.1",
"vue-property-decorator": "^6.0.0",
"vue-router": "^3.0.1",
"vue-template-compiler": "^2.5.13",
"webpack": "^2.2.0",
"webpack-hot-middleware": "^2.12.2"
}
}发布于 2019-10-04 08:22:55
由于vue-xxxxxx已在JavaScript中生成,因此发生此错误。
方法1:为了避免这个问题,我只是用标准的require()替换它
const vue-xxxxxx = require('vue-xxxxxx');
// import { vue-xxxxxx } from 'vue-xxxxxx'方法2:为了避免这个问题,我只是替换了tsconfig.json中的这些行
"noImplicitAny": false,
"allowJs": true,
现在可以使用语句,如下所示:
import { vue-xxxxxx } from 'vue-xxxxxx'享受:)
发布于 2018-03-13 14:56:31
如果@types/vue-treeselect不存在,则可以使用环境定义手动声明模块。
在项目的某个位置创建一个.d.ts (警告:它不应该使用import或export)并定义您的模块。如果您不想键入-检查它(使导入的所有内容都被推断为any):
declare module 'vue-treeselect'如果你想打字-检查它:
declare module 'vue-treeselect' {
export function something(): void
}发布于 2021-03-23 11:44:51
由于任何给定的解决方案本身并没有对我有所帮助,所以我不得不在我的项目根文件夹中创建一个专用的vendor.d.ts (shims-vue.d.ts不工作)文件,然后放在下面的行中:
declare module 'my-module-name-here';https://stackoverflow.com/questions/49258849
复制相似问题