#javascript #typescript #visual-studio-code #eslint
#javascript #typescript #visual-studio-code #eslint
Вопрос:
Я присваиваю переменной объект ошибки и добавляю к нему некоторые пользовательские свойства.
Проверка ошибок VS Code выделила новое свойство, сообщив, что оно не является частью объекта Error, что верно, но оно все равно работает.
Итак, я нажал «быстрое исправление» и случайно нажал на опцию, но понятия не имею, что это было.
Подсветка ошибок исчезла, но теперь, если я добавлю другие пользовательские свойства, все они будут проверены на соответствие тому же типу, что и первое пользовательское свойство.
например, первым пользовательским свойством было число, если я добавлю строку, теперь оно выделяет, что оно не относится к типу number .
какую настройку я включил и как мне ее отключить?
Комментарии:
1. Ну, это было, особенно потому, что я не мог вспомнить, что я нажал. Теперь чувствуешь себя лучше?
Ответ №1:
Если я объявлю Error.mycustom = 1
, что VS-код предлагает два исправления:
- Объявить свойство «пользовательским»
- Добавьте подпись индекса для свойства ‘custom’
Оба, похоже, изменяют ErrorConstructor
интерфейс. Первый вариант просто добавляет mycustom: number
к нему a, а второй добавляет [x: string]: number
. Чтобы найти модификацию, щелкните правой кнопкой мыши Error
и выберите «Перейти к определению». Затем вам просто нужно найти ErrorConstructor
интерфейс в этом файле (обычно непосредственно под определением Error
) и удалить пользовательское объявление.
Комментарии:
1. Потрясающее спасибо! Сначала я не мог его найти, так как искал в глобальном определении TS, но я нашел его скрытым в
/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts