Ayub Begimkulov - уроки по JS
3.1K subscribers
29 photos
212 links
По вопросам и деловым предложениям писать на @ayub_begimkulov
Download Telegram
Всем привет!

Сегодня общался с подписчиком, и он сообщил об одной проблеме в видео про топ 5 ошибок в rtq.

Так вот, проблема заключалась в том, что при экспорте всех экшенов из слайса return type каждого из action creator'ов был void. А при экспорте конкретных - Action.

Вот пример:


// slice.ts
export const { actions: sliceActions } = slice;
export const { someAction } = slice.actions;

// component.ts
const doSomething = () => {
someAction(); // { type: 'string', payload: string[] }
sliceActions.someAction(); // void
}


Понятное дело, что TypeScript так не работает. Да и в моем опыте ни разу такого не было. Но в чем же тогда проблема?

И тут я вспомнил, что webstorm, который использовал человек, да и в целом продукты от JetBrains не используют LSP (language server protocol).

Это значит, что все фишки с автокомплитом/анализом/рефакторингом и тд. делаются самой командой разработчиков редактора, а не командой языка, на котором вы пишите. Да, не все языки сами поддерживают LSP, иногда это бывает и коммюнити решение, в таком случае проблемы могут быть те же.

Так вот, оказалось, что и в правду причина была именно в этом. После того, как проект был открыт в VS Code - все проблемы ушли.

Целью этого поста не является принижение web storm или разжигание войны между фанатами каждого из этих редакторов. Однако иногда нужно учитывать возможность подобных проблем.

Да и в целом, кажется, что LSP дал большой шаг вперед в плане развития редакторов. Когда с помощью плагина ты можешь добавить полноценную поддержку языка в любом редакторе, поддерживающим данный протокол. Думаю VS Code без него не был бы VS Code'ом.

#devtips #ide
15👍82🔥2💯2🍓1