аутентификации. У меня получился вот такой юзер:
export type SignedInUserType = {
displayName: string | null | undefined;
phoneNumber: string | null;
photoURL: string | null | undefined;
uid: string;
};
Но теперь я дошла в проекте до создания чатов с помощью react-native-gifted-chat и там юзер имеет другую типизацию, а именно :
_id: string | number;
name?: string;
avatar?: string | renderFunction;
Можно ли как-то исправить типизацию библиотеки, так как если я изменю свою типизацию, то придется очень много где исправлять в проекте
Привет! Типизация в виде интерфейса в react-native-gifted-chat?
да, там интерфейс. export interface User { _id: string | number; name?: string; avatar?: string | renderFunction; }
MyInterface extends User { ... your fields ... }
Дело в том, что именно эти поля мне и нужны. Но их типизация отличается от моей
Напиши трансформер, который будет твой объект юзера конвертировать в тот, который ожидает чат, и наоборот.
Но я так понимаю, что например в библиотеке уже захардкоджено например, что _id - это относится к айдишнику авторизованного пользователя. Как я могу расширить существующие значения аналогичными? То есть разве могу я например написать помимо существующего _id свой userId?
опа, это что-то новенькое)
https://refactoring.guru/ru/design-patterns/adapter
Можешь) interface MyUser extends User { userId: string; } Таким образом у объектов с интерфейсом MyUser будет и _id и userId.
а он там нужен? задача-то в том чтобы их сопоставить и переисполльзовать уже имеющееся значение в другом интерфейсе с его набором полей, а не продублировать значение в два разных поля третьего интерфейса
Обсуждают сегодня