我使用VS代码使用Angularjs 1.6.4和ui-router的最新Typescript版本。
目前,我正在使用@types文件夹进行类型定义。
我有很长一段时间没有使用的Typescript定义文件存在这个问题 - 即使用moment.js,现在当我尝试升级" angular-ui-router"到新的嵌套@ uirouter / angularjs。
问题似乎是打字稿并不知道如何看待"打字"外部库的package.json文件中的字段用于其定义文件,即使在明确存在此类文件的情况下,例如在moment.js和@uirouter / angularjs中。
这是我的tsconfig:
{
"compilerOptions": {
"baseUrl": "",
"module": "es6",
"noImplicitAny": true,
"noImplicitReturns": true,
"removeComments": true,
"strictNullChecks": true,
"sourceMap": true,
"target": "es5",
"outDir": "junk_js_files",
"paths": {
"services": ["app/scripts/services/*"],
"inputDirectives": ["app/scripts/inputDirectivesModule/*"],
"common": ["app/scripts/common/*"]
}
},
"include": [
"app/**/*.ts",
"DefinitelyTyped/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts",
"dist"
]
}
在moment.js和@ uirouter / angularjs中,你可以清楚地看到package.json文件中有一个字段,说明打字(index.d.ts)文件的位置,为什么打字稿会忽略它? / p>
由于这个令人讨厌的错误,我无法升级到最新的uirouter,这使我无法使用最新的定义文件。
我怎样才能教#34; typescript来查找typings字段并使用第三方库提供的index.d.ts吗?
谢谢, 阿维。
答案 0 :(得分:2)
无论谁发现这个并且也有这个问题,请点击此处:https://github.com/Microsoft/TypeScript/issues/17958
答案 1 :(得分:0)
更新您的tsconfig.json
:
{
"compilerOptions": {
...
"moduleResolution": "node"
},
...
}