Size: a a a

2020 December 07

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ну и потому что let не хойстятся в js
источник

МТ

Марк Танащук... in Svelte [svelt]
Alexander Ponomarev
лол, потому что время жизни у лет переменной это текущий блок, если ты ее вынесешь из ближайших { } то это уже будет неравносильное преобразование
Не понимаю как должен выглядеть проблемный код.
источник

AP

Alexander Ponomarev in Svelte [svelt]
Марк, даже я тут согласен, что сделано относительно нормально =)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
как мы учим это:

1) свелт НЕ следит за топологическим порядком выражений НЕ отмеченных меткой, а также порядком между выражениями отмеченными и НЕ отмеченными. Эти вещи работают как JS

2) конструкция:

$: foo  = '';

это не более чем шорткат для удобства от:

let foo;
$: foo = '';
источник

AP

Alexander Ponomarev in Svelte [svelt]
Марк Танащук
Не понимаю как должен выглядеть проблемный код.
Твой код должен ломаться, пока метка с обьявлением переменной стоит после ее использования.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
дальше при должном знании JS можно догадаться как это будет работаьть
источник

AP

Alexander Ponomarev in Svelte [svelt]
Почему он должен ломаться если метка с обьявлением стоит ДО использования переменной, я не могу сказать
источник

МТ

Марк Танащук... in Svelte [svelt]
Я понимаю, что так должно быть, но хотел бы увидеть кейс существующий(и желательно не встречающийся раз в тысячу лет)
источник

AP

Alexander Ponomarev in Svelte [svelt]
если ты поменяешь это, то let не будет соответствовать тому чему он соответствует в жс, он не хойстится как var
источник

AP

Alexander Ponomarev in Svelte [svelt]
некоторые люди будут рады такой ошибке
источник

МТ

Марк Танащук... in Svelte [svelt]
Где  там где точки, или в функции
function instance() {
  let myVar;
 ...
 function myFunc() {
   if(myVar == "bla") { /**/ }
 }
 myFunc()
 $: myVar = ...
}
Выдаст ошибку или странное поведение
источник

МТ

Марк Танащук... in Svelte [svelt]
Alexander Ponomarev
некоторые люди будут рады такой ошибке
Можно обойтись и предупреждением =)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Артём Никитин
@PaulMaly большое пребольшое тебе спасибо!  Это был мегаполезный доклад! Это введение в магию.
спс 😊
источник

AP

Alexander Ponomarev in Svelte [svelt]
Марк Танащук
Можно обойтись и предупреждением =)
Нельзя, потому что джаваскрипт не предупреждает а ломается. Зачем вообще по твоему придумали let и const, когда был var?

Наверно потому что var нифига не предупреждал ошибочные ситуации и весь смысл использовать let и const как раз в отсутствии хойстинга и кучи других сайдэффектов
источник

ВГ

Вячеслав Гримальский... in Svelte [svelt]
"джаваскрипт не предупреждает а ломается” - запомню, прекрасно
источник

МТ

Марк Танащук... in Svelte [svelt]
Alexander Ponomarev
Нельзя, потому что джаваскрипт не предупреждает а ломается. Зачем вообще по твоему придумали let и const, когда был var?

Наверно потому что var нифига не предупреждал ошибочные ситуации и весь смысл использовать let и const как раз в отсутствии хойстинга и кучи других сайдэффектов
"В вашем коде переменная созданная меткой используется в коде, до её объявления" - компилятору сложно чтоли?)
источник

МТ

Марк Танащук... in Svelte [svelt]
Сейчас делает это не компилятор свелта а акорн(ошибкой)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Вот тоже может будет интересно для ознакомления: https://github.com/sveltejs/svelte/issues/5731
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Константин
это, конечно, всё прекрасно, но я вот смотрю, мэйнтейнеры вообще забили ишаки смотреть? Или это у них раз в квартал происходит и ещё не пришло время? )
ты жаловался что никто не реагирует. я вот взял и среагировал. теперь твоя очередь 😉
источник

AP

Alexander Ponomarev in Svelte [svelt]
Марк Танащук
Сейчас делает это не компилятор свелта а акорн(ошибкой)
сейчас это в рантайме падает, причем тут акорн?
источник