web-dev-qa-db-fra.com

Ignorer l'erreur "impossible de trouver le module" sur le script

Le compilateur TypeScript peut-il ignorer le cannot find module 'x' erreur sur les expressions d'importation telles que:

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

Il existe plusieurs bibliothèques npm telles que node ​​sql qui n'ont pas de typages existants

Existe-t-il un moyen de dire au compilateur d'ignorer cette erreur autre que la création d'un nouveau fichier de définition avec le declare module x ...?

19
Rafael

Si vous voulez juste contourner le compilateur, vous pouvez créer un fichier .d.ts pour ce module, par exemple, vous pouvez créer un fichier sql.d.ts et avoir à l'intérieur ceci:

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

Depuis TypeScript 2.6 (publié le 31 octobre 2017), il existe désormais n moyen d'ignorer toutes les erreurs d'une ligne spécifique en utilisant // @ts-ignore commentaires avant la ligne cible.

La documentation réparée est assez succinct, mais pour récapituler:

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

désactive le rapport d'erreurs pour cette ligne.

Cependant, cela ne doit être utilisé qu'en dernier recours lors de la correction de l'erreur ou de l'utilisation de hacks comme (x as any) est beaucoup plus difficile que de perdre tous les types de vérification d'une ligne.

Quant à la spécification de certaines erreurs, l'état actuel (mi-2018) est discuté ici, dans Design Meeting Notes (2/16/2018) et autres commentaires , qui est essentiellement

"pas encore de conclusion "

et une forte opposition à l'introduction de ce réglage fin.

14
stsloth

Résol Par défaut @ ts-check recherche les définitions d'un module, soit son propre code, soit des bibliothèques externes.

Puisque nous n'utilisons pas de modules de style ES6, nous devons donc utiliser commonjs, consultez mon fichier jsconfig.json pour obtenir de l'aide.

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