Ответ 1
Если вы просто хотите обойти компилятор, вы можете создать файл .d.ts для этого модуля, например, вы можете создать файл sql.d.ts, и внутри это:
declare module "sql" {
let _sql: any;
export = _sql;
}
Может ли компилятор Typescript игнорировать ошибку cannot find module 'x'
при импорте, например:
//How to tell the compiler that this module does exists
import sql = require('sql');
Существует несколько библиотек npm, таких как node sql, у которых нет существующих типов
Есть ли способ сказать компилятору игнорировать эту ошибку, кроме создания нового файла определения с помощью declare module x ...
?
Если вы просто хотите обойти компилятор, вы можете создать файл .d.ts для этого модуля, например, вы можете создать файл sql.d.ts, и внутри это:
declare module "sql" {
let _sql: any;
export = _sql;
}
Начиная с TypeScript 2.6 (выпущен 31 октября 2017 г.), теперь есть способ игнорировать все ошибки в конкретной строке, используя //@ts-ignore
комментарии перед целевой строкой.
Исправленная документация достаточно лаконична, но резюмируем:
// @ts-ignore
const s : string = false
отключает отчеты об ошибках для этой строки.
Тем не менее, это следует использовать только в качестве крайней меры, когда исправление ошибки или использование таких хаков, как (x as any)
, намного сложнее, чем потеря проверки всех типов для строки.
Что касается указания определенных ошибок, текущее состояние (середина 2018 года) обсуждается здесь, в заметках к совещанию по проектированию (16.02.2017) и в дополнительных комментариях, которые в основном
"пока нет заключения"
и сильная оппозиция введению этой тонкой настройки.
Решено Это По умолчанию @ts-check ищет определения модуля, либо его собственный код, либо внешние библиотеки.
Так как мы не используем модули стиля ES6, то мы должны использовать commonjs, обратитесь к моему файлу jsconfig.json за помощью.
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": ["es5", "es6", "es7"]
},
"include": ["src/**/*"],
"exclude": ["node_modules"],
"typeAcquisition": { "enable": true }
}