169 похожих чатов

Всем привет! Такой вопрос: я изначально прописала типизацию юзера для

аутентификации. У меня получился вот такой юзер:
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;

Можно ли как-то исправить типизацию библиотеки, так как если я изменю свою типизацию, то придется очень много где исправлять в проекте

11 ответов

13 просмотров

Привет! Типизация в виде интерфейса в react-native-gifted-chat?

Tatsiana-Kedrova Автор вопроса
Евгений Заикин
Привет! Типизация в виде интерфейса в react-native...

да, там интерфейс. export interface User { _id: string | number; name?: string; avatar?: string | renderFunction; }

Tatsiana-Kedrova Автор вопроса
Евгений Заикин
Привет! Типизация в виде интерфейса в react-native...

Дело в том, что именно эти поля мне и нужны. Но их типизация отличается от моей

Напиши трансформер, который будет твой объект юзера конвертировать в тот, который ожидает чат, и наоборот.

Tatsiana-Kedrova Автор вопроса
Евгений Заикин
MyInterface extends User { ... your fields ... }

Но я так понимаю, что например в библиотеке уже захардкоджено например, что _id - это относится к айдишнику авторизованного пользователя. Как я могу расширить существующие значения аналогичными? То есть разве могу я например написать помимо существующего _id свой userId?

Tatsiana-Kedrova Автор вопроса
Tatsiana Kedrova
опа, это что-то новенькое)

https://refactoring.guru/ru/design-patterns/adapter

Tatsiana Kedrova
Но я так понимаю, что например в библиотеке уже за...

Можешь) interface MyUser extends User { userId: string; } Таким образом у объектов с интерфейсом MyUser будет и _id и userId.

Евгений Заикин
Можешь) interface MyUser extends User { userI...

а он там нужен? задача-то в том чтобы их сопоставить и переисполльзовать уже имеющееся значение в другом интерфейсе с его набором полей, а не продублировать значение в два разных поля третьего интерфейса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта