我正在Angular 6应用程序中使用cleave.js(^ 1.5.2)以及@ types / cleave.js包(^ 1.4.0),正在发生奇怪的事情。如果我运行.replace()
来构建应用程序,它将失败并显示以下错误:
groupby('domain')
我看到在@ types / cleave.js的源代码中确实如此,但这只是类型库,为什么我需要默认导出?真正奇怪的部分是,如果我随后修改(无关紧要)文件然后保存,自动重建会自动拾取(仍然显示错误,但继续),将为开发中的角度应用程序提供愉快的服务,并提供cleave.js功能我什至在浏览器中也可以使用那这不是一个真正的错误吗?如何关闭它?
我所见过的使用DefinitelyTyped库的任何教程或指南都只是说npm安装它们足以在不进行任何其他修改的情况下使用它们,因此我在搜索时发现的大多数问题都是人们试图做出的它们通常用于JS库的TypeScript绑定或它们自身的模块。
在package.json中:
ng build
在我的tsconfig.json中:
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.
在我的app.component.ts中:
...
"@types/cleave.js": "^1.4.0",
"cleave.js": "^1.5.2"
...
答案 0 :(得分:2)
大多数获得TS类型的js库都使用...* as...
。
或要求allowSyntheticDefaultImports: true
中的tsconfig
才能使默认导出正常工作。
import * as CleaveOptions from 'cleave.js/options'
// AND
import Cleave from 'cleave.js'
//tsconfig.json
...
{
allowSyntheticDefaultImports: true
}
...