Потому что копилятор пока не настолько умный и не умеет в «исключающее или»
Блин, обидно( Я нашёл вариант с if(instanceif) else {} - тогда в else нормально работает. А есть более красивые варианты?
if (!(qs instanceof Foo)) {
если работает для else ветки. то тогда это похоже на баг. Советую открыть issue
😳
Вау. Удивительно. И правда работает. Спасибо
А почему это баг?
вот у меня такая же реакция была, когда увидел if (qs instanceof Foo === false)
Ну это же вкусовщина. Как по мне, так это более выразительно. Восклицательный знак можно не заметить, а так более читабельно, как книга.
Для такого уже тоже не будет работать const cond = qs instanceof Foo; if(!cond) { qs; } По сути там очень простой линейный анализ, без бэктрекинга
так это же неверно, instanceof приоритет ниже чем у ===, не?
как ты его не заметишь, если if (!(a instanceof A)) {}
Обсуждают сегодня