Ignore “cannot find module” error on typescript

时间秒杀一切 提交于 2020-12-29 05:14:06

问题


Can the Typescript compiler ignore the cannot find module 'x' error on import expressions such as:

//How to tell the compiler that this module does exists
import sql = require('sql');

There are multiple npm libraries such as node sql that doesn't have existing typings

Is there a way to tell the compiler to ignore this error other than creating a new definition file with the declare module x ... ?


回答1:


If you just want to bypass the compiler, you can create a .d.ts file for that module, for instance, you could create a sql.d.ts file and inside have this:

declare module "sql" {
  let _sql: any;
  export = _sql;
}



回答2:


As of TypeScript 2.6 (released on Oct 31, 2017), now there is a way to ignore all errors from a specific line using // @ts-ignore comments before the target line.

The mendtioned documentation is succinct enough, but to recap:

// @ts-ignore
const s : string = false

disables error reporting for this line.

However, this should only be used as a last resort when fixing the error or using hacks like (x as any) is much more trouble than losing all type checking for a line.

As for specifying certain errors, the current (mid-2018) state is discussed here, in Design Meeting Notes (2/16/2018) and further comments, which is basically

"no conclusion yet"

and strong opposition to introducing this fine tuning.




回答3:


Solved This By default @ts-check looks for definitions of a module, either its your own code or external libraries.

Since we are not using ES6 style modules, then we must we are using commonjs, check my jsconfig.json file for help.

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "lib": ["es5", "es6", "es7"]
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"],
  "typeAcquisition": { "enable": true }
}


来源:https://stackoverflow.com/questions/37355244/ignore-cannot-find-module-error-on-typescript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!