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

Привет. как продекларировать функцию, чтобы func(type: 'type1' | 'type2', entity: Entity1

| Entity2) {}
первый type соответствовал первому entity
а второй второму?

20 ответов

16 просмотров

сделай перегрузку

Пользователь-6102c Автор вопроса

покажи как?

Привет. А покажите нам, что вы хотите написать. А то часто приходят с решением, а не с проблемой

Дженерики здесь не помогут? что-то по типу: func<T1, T2>(type: T1, entity: T2) {}

func(type: 'type1', entity: Entity1){} func(type: 'type2', entity: Entity2){} func(type, entity){ //body } https://www.typescriptlang.org/docs/handbook/functions.html#overloads

Пользователь-6102c Автор вопроса

а как внутри пойти по 'type1' пути?

if(type === 'type1'){ ... } if(type === 'type2'){ ... }

Пользователь-6102c Автор вопроса

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

не понял вопроса

Пользователь-6102c Автор вопроса

я пошел по TYPE_1 внутри if, и там entity же ведь должен быть Entity1, но он не ругается на отсутствующее свойство

либо вместо обычного иф, напиши тайп гард, либо укажи тип через as

Можете текстом это прислать в песочнице TS?

Пользователь-6102c Автор вопроса

https://www.typescriptlang.org/play?#code/KYOwrgtgBAsgngFTgB2FA3gKClBBNABQFEB9ARigF4oByMmgGm10NICYra2bMBfTTAEsQAF2AAnAGYBDAMZoiowSLgUsOaQC4oAZxHjhAcwDcfAcLFS5CpSo7qoAI216DIE2YGZZAG2k6dKABBBxwoAHtUEAAKFVRteCRUADp8YnIGKFARZThtRRyVMgBKbQA3cMEAE1McSNBYlGAExCbU1hI2TOzc-Ns4NlKoCuraiKjG+KhpEDhu-u0ZuCGRqoxmHEFJKEm0Sn3YVpS00hL1sLCelWTJQWAfKpIQcJESYAAPQT1OMjGcfn+fCAA

Пользователь-6102c Автор вопроса

тайп гард это вот так?

Пользователь-6102c Автор вопроса

все равно не ругается на несуществующее свойство

А много у вас ещё таких типов может быть?

Пользователь-6102c Автор вопроса

ну да, это ж енум

проверяй тип самой сущности

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта