Я хотел бы добавить опцию в быстрое исправление VSCode, которая добавляет // @ts-ignore
над предупреждением, чтобы оно исчезло. В настоящее время я получаю только следующую опцию для устранения предупреждений noUnusedLocals:
Есть ли способ заставить Quick Fix отображать // @ts-ignore
в качестве решения?
Я поискал в Интернете, но практически не нашел официальной документации о том, как работает Quick Fix.
Образец СПО:
// Need to get @ts-ignore here.
function someFn (){
// ^^^^^^ From ctrl+. "Quick Fix" menu option here.
}
const makeThisModule = 1;
export default makeThisModule;
// don't export { someFn };
@ts-ignore
— это директива компилятора Typescript. Если ошибка исходит от eslint, который представляет собой совершенно другой инструмент, то вместо этого вам нужно будет использовать директиву eslint-ignore
.
Этот вопрос похож на: Отключение правила eslint для конкретной строки. Если вы считаете, что это другое, отредактируйте вопрос, поясните, чем он отличается и/или как ответы на этот вопрос не помогают решить вашу проблему.
Указывает ли в представлении «Проблемы» источник (eslint или tsxxxx) этого конкретного предупреждения?
@myf Да, если добавить его, предупреждение исчезнет. Ошибка не из-за eslint; извините за путаницу. Я удалил упоминания об eslint в исходном вопросе.
@JaredSmith, извини, но это не связано с eslint. Я удалил упоминания об Эслинте из вопроса. Вопрос, на который вы ссылаетесь, не решает мою проблему; Я хочу иметь возможность сделать это из меню быстрого исправления VSCode, я не хочу вводить его вручную.
@Mark Источник: ts(6133). Я удалил упоминания об eslint из исходного вопроса.
Хорошо, я не уверен, что вы сможете это сделать, потому что очевидным решением проблемы неиспользуемой переменной является ее удаление, и именно это плагин предложит вам сделать. Обычно он рекомендует добавить такую директиву компилятора только в том случае, если не знает лучшего решения. Честно говоря, если вам действительно нужно сохранить это по какой-то причине, вы можете просто закомментировать его, но я бы избавился от него, если бы это был я, и вытащил бы его из истории git, если бы он мне понадобился (при условии, что он был зафиксирован в какой-то момент).
И уточню, изменение правил линтера не решит мою проблему. Я хочу иметь возможность быстро игнорировать предупреждения во время отладки, только те предупреждения, которые я намерен игнорировать в данный момент (например, я не хочу игнорировать предупреждения для всего файла сразу).
@fart да, мы поняли, ваши изменения к вопросу наиболее убедительны +1. Я все еще не думаю, что ты сможешь получить то, что ищешь здесь, но я могу ошибаться. Если бы это был я, согласно моему предыдущему комментарию, я бы удалил его или Cmd+L
, а затем Cmd+/
, чтобы прокомментировать строку.
@JaredSmith В основном это проблема с объявлениями функций, которые могут состоять из нескольких десятков строк, которые мне придется закомментировать. Я всегда могу просто добавить горячую клавишу AHK для быстрой вставки в строку игнорирования, но я очень надеялся на собственное решение в VS Code :)
@fart для функций, вы всегда можете просто экспортировать их, чтобы устранить ошибку. Вы также можете закомментировать функцию, выполнив Ctrl+Shift+Right
с курсором в теле функции, а затем Cmd+/
. Наверное, я до сих пор не понимаю, почему вам нужна возможность компилировать неиспользуемые функции, но это ваш код.
@fart Не могли бы вы сделать небольшой репродукцию (на codeandbox.io/GtHub Codespace/StackBlitz/что-нибудь с использованием VSC) с конфигурацией вашего рабочего пространства, показывающей проблему? Или покажите нам свой конфиг? В настоящее время я не могу даже заставить свой VSCode ворчать о неиспользуемых функциях.
VSC предложил быстрое исправление «удалить неиспользуемое» (добавлен STR к вашему вопросу), поэтому могу подтвердить, что для меня и для TS нет «добавить ts-игнорировать». Однако наличие //@ts-ignore
для меня там не имеет значения. Примечание: переключение синтаксиса того же файла на JavaScript заставляет VSC предлагать «игнорировать» и даже «отключить проверку этого файла» в опциях быстрого исправления.
@myf Ах, вам, вероятно, нужно «noUnusedLocals»: правда, в ваших компиляционных опциях tsconfig.json, чтобы увидеть это предупреждение.
Я создал расширение VSCode для этого:
И действительно ли (добавление вручную)
//@ts-ignore
над этим объявлением функции предупреждение исчезнет? Я предполагаю, что «игнорировать» имеет смысл только для реальных ошибок TS (обычно вокруг типов), а не для «предложений» линтера о неиспользуемом коде. Я предполагаю, что неиспользуемая функция останется неиспользованной с "игнорировать" или без него (?). Знаете ли вы, откуда именно поступило предложение? Если из ESLint, то лучшим решением может быть настройка ESLint более снисходительно к неиспользуемым функциям.