我有一个第三方模块(“handsontable”),它在模块文件夹(“/node_modules/handsontable/handsontable.d.ts”)中有过时的定义,但在/ node_modules /中有正确的“index.d.ts” @types文件夹。 所以结构如下:
/node_modules
/@types
/handsontable
/index.d.ts (LATEST)
/handsontable
/handsontable.d.ts (OUTDATED)
/src/app.ts
我正在使用es6模块,我不想将handontable暴露给全局,所以当我在app.ts中写道时:
import ht from 'handsontable'
let options: ht.Options
它显示错误,因为ht.Options
中不存在/node_modules/handsontable/handsontable.d.ts
,而/node_modules/@types/handsontable/index.d.ts
只存在/node_modules/@type/module
是否有强制打字稿在import m from "module"
期间从{
"exclude": [
"node_modules","build","dist", "typings","types"
],
"include": [
"./src/**/*.ts"
],
"typeAcquisition": {
"enable": true
// "exclude": [ //tried that too
// "handsontable"
// ]
},
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "node_modules",
"paths": {
"src/*":["../src/*"],
"app/*":["../src/*"],
"*":["../src/*", "./node_modules"]
},
"target": "es2016",
//"module": "es6", //es6 is not compatible with webpack.config.ts
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"allowJs": true,
"outDir": "./build",
"experimentalDecorators": true,
"lib": [
"dom",
"es6"
]
}
}
加载类型信息?
这是我的 tsconfig.json :
Three neonates with one adult
打字稿版本:2.4.2
答案 0 :(得分:0)
正如评论"node_modules/{module}/{module}.d.ts"
中所述,始终优先于"node_modules/@types/{module}/index.d.ts"
所以我到目前为止找到的最佳解决方法是映射 tsconfig.json / compilationOptions / paths :
{
compilationOptions:{
baseUrl:"node_modules",
paths:{
"handsontable":["@types/handsontable"]
}
}
}
是什么帮助我找到它,是标志 tsc --traceResolutions