Size: a a a

2021 February 09

EO

Eugene Obrezkov in Frontend UA
// A.js
const A = { foo: 'bar' }

// B.js
const B = { foo: 'bar' }
источник

EO

Eugene Obrezkov in Frontend UA
притянуто за уши, но аналогия подходит, как по мне
источник

EO

Eugene Obrezkov in Frontend UA
когда TS будет типы проверять, для него Promise родной и Promise твой - это разные типы, хоть у них и одинаковый идентификатор и layout
источник

b

b.dvorianov in Frontend UA
Маємо опис метода в доках Next.js, де одне з полів параметра context - locale і вказано, що воно доступне “(if enabled)”. Підкажіть, що треба зробити, щоб воно стало enabled? 🤔
источник

A

Art in Frontend UA
источник

b

b.dvorianov in Frontend UA
Так, в мене наразі сконфігурований sub-path routing, в конфігу є описаний i18n, але нічого в getStaticProps
источник

A

Art in Frontend UA
Это странно, должно быть. А через useRouter достаётся locale?
источник

b

b.dvorianov in Frontend UA
Звертаю увагу, що використовується дев‘ята версія
источник

b

b.dvorianov in Frontend UA
Art
Это странно, должно быть. А через useRouter достаётся locale?
Перевірю, та люди в сусідньому чаті підтверджують мої опасіння, що це в дев‘ятій не працюватиме так
источник

A

Art in Frontend UA
Тогда и не будет
источник

A

Art in Frontend UA
источник

A

Art in Frontend UA
v10.0.0  locale, locales, defaultLocale, and notFound options added.
источник

b

b.dvorianov in Frontend UA
Ех, надія помирає останньою) дякую 🙏🏻
источник

AN

Anton Nemtsev in Frontend UA
Привет.
Подскажите пожалуйста по поводу ts.
То что я написал работает, но мне кажется это какая то ебанина. Как это сделать правильно?


 const keyHandler = (event: React.KeyboardEvent<HTMLDetailsElement>): void => {
   if (event.key === "Escape") event.currentTarget.removeAttribute("open");
 };

 const addESCListener = () => {
   const element = (serviceSelectorRef.current as unknown) as HTMLDetailsElement;
   element?.addEventListener(
     "keydown",
     (keyHandler as unknown) as EventListener
   );
 };
источник

DB

Dima Bildin in Frontend UA
Anton Nemtsev
Привет.
Подскажите пожалуйста по поводу ts.
То что я написал работает, но мне кажется это какая то ебанина. Как это сделать правильно?


 const keyHandler = (event: React.KeyboardEvent<HTMLDetailsElement>): void => {
   if (event.key === "Escape") event.currentTarget.removeAttribute("open");
 };

 const addESCListener = () => {
   const element = (serviceSelectorRef.current as unknown) as HTMLDetailsElement;
   element?.addEventListener(
     "keydown",
     (keyHandler as unknown) as EventListener
   );
 };
1. (serviceSelectorRef.current as unknown) as HTMLDetailsElement;

когда создаёшь реф, можно в генерике указать параметр, тогда не надо кастовать.

2. не уверен, зачем кастуется keyHandler, он же определён всегда двумя строками выше

Что ещё кроме кастования кажется ебаниной?
источник

AN

Anton Nemtsev in Frontend UA
Именно кастование.
Если я просто типизирую


const keyHandler = (event: KeyboardEvent): void => {

то на event.currentTarget.removeAttribute("open"); будет ругаться так как хз что там в currentTarget и нету removeAttribute
Но, если я определяю тип как React.KeyboardEvent<HTMLDetailsElement>, то строка
element?.addEventListener('pressed', keyHandler); будет ругаться что keyHandler это какая то хрень а не EventListener.
источник

AN

Anton Nemtsev in Frontend UA
> когда создаёшь реф, можно в генерике указать параметр, тогда не надо кастовать.

Спасибо, сделал так:
const serviceSelectorRef = useRef<HTMLDetailsElement | null>(null);
источник

DB

Dima Bildin in Frontend UA
Anton Nemtsev
Именно кастование.
Если я просто типизирую


const keyHandler = (event: KeyboardEvent): void => {

то на event.currentTarget.removeAttribute("open"); будет ругаться так как хз что там в currentTarget и нету removeAttribute
Но, если я определяю тип как React.KeyboardEvent<HTMLDetailsElement>, то строка
element?.addEventListener('pressed', keyHandler); будет ругаться что keyHandler это какая то хрень а не EventListener.
Оно возможно ругается, потому что event, который попадает в обычный addEventListener – это не React.KeyboardEvent
источник

DD

Dmytro Dovhan in Frontend UA
Anton Nemtsev
Именно кастование.
Если я просто типизирую


const keyHandler = (event: KeyboardEvent): void => {

то на event.currentTarget.removeAttribute("open"); будет ругаться так как хз что там в currentTarget и нету removeAttribute
Но, если я определяю тип как React.KeyboardEvent<HTMLDetailsElement>, то строка
element?.addEventListener('pressed', keyHandler); будет ругаться что keyHandler это какая то хрень а не EventListener.
а зачем (serviceSelectorRef.current as unknown)

ты же можешь затипизировать ref ? useRef<HTMLDetailsElement>()
источник

Вт

Ві тя in Frontend UA
Dima Bildin
Может быть такое, что там в одном случае что-то другое, что тоже называется Promise?
да, у свелт и локального тайпскрипта разные версии компайлера
источник