Size: a a a

2021 March 12

EO

Eugene Obrezkov in Frontend UA
а, не, не так
источник

DD

Dmytro Dovhan in Frontend UA
те решить можно только тем вариантом что я выше кинул?

с явной проверкой каждого ключа?
источник

EO

Eugene Obrezkov in Frontend UA
Dmytro Dovhan
те решить можно только тем вариантом что я выше кинул?

с явной проверкой каждого ключа?
можно на Map сделать, там такое точно работает
источник

EO

Eugene Obrezkov in Frontend UA
ну и в целом, я за то чтобы в таких кейсах Map использовали
источник

EO

Eugene Obrezkov in Frontend UA
может какой-то Object.hasOwnProperty проканает
источник

EO

Eugene Obrezkov in Frontend UA
а, объяснение, кстати, логичное
у тебя поля меняются в рантайме в зависимости от флага в параметре
источник

EO

Eugene Obrezkov in Frontend UA
эта проверка in ничего не решает
источник

EO

Eugene Obrezkov in Frontend UA
у тебя sectionName - multiple | single из-за того что их можно поменять в рантайме через bool в параметрах
источник

DD

Dmytro Dovhan in Frontend UA
Eugene Obrezkov
можно на Map сделать, там такое точно работает
плоский конфиг и индексировать по составному ключу?
источник

EO

Eugene Obrezkov in Frontend UA
Dmytro Dovhan
плоский конфиг и индексировать по составному ключу?
не, с Map ты будешь просто через get() брать нужное поле и смотреть есть ли оно
источник

EO

Eugene Obrezkov in Frontend UA
то есть то, что у тебя и сейчас 🙂
источник

EO

Eugene Obrezkov in Frontend UA
только оно будет нормально типизированное
источник

EO

Eugene Obrezkov in Frontend UA
const config = map.get(sectionName);

if (typeof config === 'undefined') throw new error()

// do with config
источник

AK

Alexander Kuzmenko in Frontend UA
У меня есть похожая фигня, TS не понимает что я отфильтровал по Boolean и doc не может быть undefined
источник

AK

Alexander Kuzmenko in Frontend UA
Только так работает почему-то
источник

KY

Kyrylo Yakovenko • 𝟰... in Frontend UA
Dmytro Dovhan
я в целом могу это поправить как то так
if (multiple) {
       if  ('multiple' in subConfig) {
          return subConfig['multiple'];
       }
       throw Error('incorrect configuration');    
   } else {
       return subConfig['single']
   }    


но это выглядит не очень
Вот так компилится
источник

KY

Kyrylo Yakovenko • 𝟰... in Frontend UA
источник

EO

Eugene Obrezkov in Frontend UA
Alexander Kuzmenko
У меня есть похожая фигня, TS не понимает что я отфильтровал по Boolean и doc не может быть undefined
проблемы такого рода вполне могут быть из-за небогатой стандартной библиотеки (типов, имею ввиду)
источник

EO

Eugene Obrezkov in Frontend UA
сейчас у него система типов активно развивается, вопрос времени, когда добавят всяких общих типов на функции из стандартной библиотеки (я надеюсь)
источник

DD

Dmytro Dovhan in Frontend UA
так теряются типы если я правильно понял, на выходе any
источник