“module / index.d.ts”和“@ types / module / index.d.ts”之间的打字稿冲突

时间:2017-08-16 18:43:07

标签: typescript handsontable typescript-typings es6-modules

我有一个第三方模块(“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

1 个答案:

答案 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