Size: a a a

TypeScript — русскоговорящее сообщество

2020 March 16

BB

Bugs Bunny in TypeScript — русскоговорящее сообщество
Santiee
ага, понял
думал мб есть что-то похоже на то как это делается в вэбпаке, динамически🤕
ну тут скорее проблема не с вебпаком будет, а со статическими связями )
хотя это может быть фичей языка, в теории. типа
import { … } from ‘./module/*’
но такого нет
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Santiee
ага, понял
думал мб есть что-то похоже на то как это делается в вэбпаке, динамически🤕
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Попробуй такое
источник

MS

Max Syabro in TypeScript — русскоговорящее сообщество
Но если руками импортировать модно - лучше руками
источник

S

Santiee in TypeScript — русскоговорящее сообщество
спасибо большое, почитаемс
источник

A

Alex CherryTea in TypeScript — русскоговорящее сообщество
Santiee
ага, понял
думал мб есть что-то похоже на то как это делается в вэбпаке, динамически🤕
В вебпаке это делается оч хреново )
источник

А

Алексей in TypeScript — русскоговорящее сообщество
Ребят, подскажите пожалуйста, почему ts не видит в type Props описание метода login? Выдает ошибку: Property 'login' is missing in type '{}' but required in type 'Props'.

type Props = {
   login: (email: string, password: string) => void;
}

const mapStateToProps = ({ Auth }: any) => ({
   login: Auth.login,
});

export const LoginForm = inject(mapStateToProps)(({ login }: Props) => {

   return (
       <></>
   )
});
источник

BB

Bugs Bunny in TypeScript — русскоговорящее сообщество
Алексей
Ребят, подскажите пожалуйста, почему ts не видит в type Props описание метода login? Выдает ошибку: Property 'login' is missing in type '{}' but required in type 'Props'.

type Props = {
   login: (email: string, password: string) => void;
}

const mapStateToProps = ({ Auth }: any) => ({
   login: Auth.login,
});

export const LoginForm = inject(mapStateToProps)(({ login }: Props) => {

   return (
       <></>
   )
});
готовить redux с hoc-ами неудобно. точно нет возможности взять хуки?
источник

А

Алексей in TypeScript — русскоговорящее сообщество
тут mobx
источник

А

Алексей in TypeScript — русскоговорящее сообщество
в целях удобного тестирования не будет удобно использовать хук
источник

А

Алексей in TypeScript — русскоговорящее сообщество
потом нужно будет вытащить чистый компонент, без хука внутри
источник

А

Алексей in TypeScript — русскоговорящее сообщество
да и в mobx-react вроде как нет хука для доступа к стору
источник

BB

Bugs Bunny in TypeScript — русскоговорящее сообщество
а. прошу прощения. не. обратил внимания.
тогда будет что-то такое )
источник

EG

Egor Gorbachev in TypeScript — русскоговорящее сообщество
Алексей
потом нужно будет вытащить чистый компонент, без хука внутри
inject у Mobx тоже нормально не типизируется, хуки типизируются (в статье есть пример)
источник

EG

Egor Gorbachev in TypeScript — русскоговорящее сообщество
Bugs Bunny
а. прошу прощения. не. обратил внимания.
тогда будет что-то такое )
Там хуки есть, все эти приседания с хоками уже не нужны
источник

А

Алексей in TypeScript — русскоговорящее сообщество
Egor Gorbachev
inject у Mobx тоже нормально не типизируется, хуки типизируются (в статье есть пример)
оу, спасибо большое, буду сейчас читать
источник

BB

Bugs Bunny in TypeScript — русскоговорящее сообщество
Egor Gorbachev
Там хуки есть, все эти приседания с хоками уже не нужны
да я изначально тоже так подумал )
источник

АГ

Алексей Гринько in TypeScript — русскоговорящее сообщество
Алексей
да и в mobx-react вроде как нет хука для доступа к стору
У них в доке инструкция как написать свой для стора и для мульти-стора
источник

ТФ

Татьяна Фомина in TypeScript — русскоговорящее сообщество
функция

const getInitialState = (mode: 'add' | 'view' | 'edit' | 'copy'): IState => ({
   data: initialData,
   isReadOnly: isReadOnlyCheck(mode),
   isLoading: false,
   hasChanges: false,
   isModalVisible: false,
   loadData: true,
   goBack: false,
   redirect: false,
});


когда вызываю
const { mode } = props.match.params;
   const initialState: IState = getInitialState(mode);


то ругается  Argument of type 'string' is not assignable to parameter of type '"add" | "view" | "edit" | "copy"'.
как пофиксить?
источник

АГ

Алексей Гринько in TypeScript — русскоговорящее сообщество
Татьяна Фомина
функция

const getInitialState = (mode: 'add' | 'view' | 'edit' | 'copy'): IState => ({
   data: initialData,
   isReadOnly: isReadOnlyCheck(mode),
   isLoading: false,
   hasChanges: false,
   isModalVisible: false,
   loadData: true,
   goBack: false,
   redirect: false,
});


когда вызываю
const { mode } = props.match.params;
   const initialState: IState = getInitialState(mode);


то ругается  Argument of type 'string' is not assignable to parameter of type '"add" | "view" | "edit" | "copy"'.
как пофиксить?
Как вариант, можно вынести перечисление это в отдельный тип
и потом где передаете как аргумент дописать as TMode к примеру
источник