首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我的angular项目中使用@types/cleave.js时,如何忽略TS1192?

在我的angular项目中使用@types/cleave.js时,如何忽略TS1192?
EN

Stack Overflow用户
提问于 2019-07-17 06:16:42
回答 1查看 921关注 0票数 1

我在Angular 6应用程序中使用cleave.js (^1.5.2)和@types/cleave.js包(^1.4.0)时,发生了一件奇怪的事情。如果我运行ng build来构建应用程序,它会失败,并显示以下错误:

代码语言:javascript
复制
ERROR in src/app/app.component.ts(4,8): error TS1192: Module '"C:/Users/evcomes/Angular2/hellogular/node_modules/@types/cleave.js/index"' has no default export.
src/app/app.component.ts(5,8): error TS1192: Module '"C:/Users/evcomes/Angular2/hellogular/node_modules/@types/cleave.js/options/index"' has no default export.

我在@types/cleave.js的源代码中看到了这一点,但它只是一个类型库,为什么我需要缺省导出?真正奇怪的是,如果我修改了一个文件(并不重要),然后保存,自动重新构建将拾取它(仍然显示错误,但仍在继续),将很高兴地为正在开发的angular应用程序提供服务,并且我使用的cleave.js功能甚至可以在我的浏览器中工作。那么这不是一个真正的错误吗?我怎么才能把它关掉?

我见过的任何使用DefinitelyTyped库的教程或指南都只是说,npm安装它们应该足以在没有任何其他修改的情况下使用它们,所以我在搜索这个库时发现的大多数问题都是人们试图为JS库或他们自己的模块创建自己的TypeScript绑定。

在package.json中:

代码语言:javascript
复制
...
"@types/cleave.js": "^1.4.0",
"cleave.js": "^1.5.2"
...

在我的tsconfig.json中:

代码语言:javascript
复制
...
"esModuleInterop": true,
"typeRoots": [
   "node_modules/@types"
]
...

在我的app.component.ts中:

代码语言:javascript
复制
...
import Cleave from 'cleave.js';
import CleaveOptions from 'cleave.js/options'
...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-18 03:46:59

大多数获取TS类型的js库都使用...* as...。或者需要tsconfig中的allowSyntheticDefaultImports: true才能使默认导出正常工作。

代码语言:javascript
复制
import * as CleaveOptions from 'cleave.js/options'
// AND
import Cleave from 'cleave.js'
代码语言:javascript
复制
//tsconfig.json
...
{
  allowSyntheticDefaultImports: true
}
...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57066151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档