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 ...
?
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;
}
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.
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 }
}