Size: a a a

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

2020 March 04

MR

Mike Rize in TypeScript — русскоговорящее сообщество
источник

MR

Mike Rize in TypeScript — русскоговорящее сообщество
Господа, хочу сделать жёсткую зависимость на наличие одного из двух пропсов.
И желательно чтобы можно было использовать только один из них.
Что же я делаю не так?
источник

MR

Mike Rize in TypeScript — русскоговорящее сообщество
Я опираюсь от stackoverflow, где на этот способ указывали 3 решения.
Вот например один из ответов. тык
Пока не могу сформулировать гугл запрос на это дело.
источник

EG

Egor Gorbachev in TypeScript — русскоговорящее сообщество
ИЛИ в общем виде реализуется так. Деструктуризация это ломает
источник

MR

Mike Rize in TypeScript — русскоговорящее сообщество
Egor Gorbachev
ИЛИ в общем виде реализуется так. Деструктуризация это ломает
Спасибо, а нет ли обходных путей? Тимлид говорит что деструктуризация желательна
источник

MS

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

MS

Max Syabro in TypeScript — русскоговорящее сообщество
tldr нет )
источник

Ti

Time is the side effect in TypeScript — русскоговорящее сообщество
Mishka
Всем привет!
Никак не получается решить проблему
Есть объект с параметрами
const input = {a:1. b:2, c:3}

Есть функция которая принимает 3 таких же парметра
const fn = (a,b,c) => a+b+c

Вопрос: как скормить этот объект этой функции?
fn({…input}) не работает
fn(input.a, input.b, input.c) работает, но выглядит криво и как-будто есть решение проще

помогите
const fn = ({a,b,c}) => a+b+c
источник

ЗП

Зигохистоморфный Препроморфизм in TypeScript — русскоговорящее сообщество
Time is the side effect
const fn = ({a,b,c}) => a+b+c
😂
источник

ТФ

Татьяна Фомина in TypeScript — русскоговорящее сообщество
что за проблема в этой строке?
источник

TP

Taras Postolyuk in TypeScript — русскоговорящее сообщество
Татьяна Фомина
что за проблема в этой строке?
Ожидает два аргумента, получает один
источник

ТФ

Татьяна Фомина in TypeScript — русскоговорящее сообщество
эт я поняла))
источник

ТФ

Татьяна Фомина in TypeScript — русскоговорящее сообщество
не понимаю, почему
источник

M中

Mikhail 才藤 中村 Bashurov in TypeScript — русскоговорящее сообщество
Татьяна Фомина
не понимаю, почему
Потому что useReducer сам принимает два типоаргумента (Стейт и акшн)
React.Reducer здесь не нужен
источник

c

cloudedbe in TypeScript — русскоговорящее сообщество
Парни, как справиться с таким кейсом?
Когда ты пытаешься сделать for (const key in typedObject) и не можешь получить значение по ключу поскольку key это просто string, а при typedObject[key] тайпскрипт хочет увидеть keyof typeof typedObject

Нагуглил ток один нормальный варик это написать хелпер аля
function keys<O extends object>(obj: O): Array<keyof O> {
   return Object.keys(obj) as Array<keyof O>;
}
keys(typedObject).forEach(key => // key будет уже union ключей


https://www.typescriptlang.org/play/index.html?ssl=1&ssc=1&pln=29&pc=2#code/FAFwngDgpgBAYgQwNZQApQE4GcD2A7GAXhgG9gBIASwBMAuGPAVwFsAjTAbgoDNLsQAcgmZQA-PSwgMlPAHMu5ADYJJQkeJiTpchcxrVFUNWIlSZ84AF8uwAMb5JMaNnz1EKdC4LEyVOjABGACYAZgAWABoePlVhKHoAci1zADUERUYoBKilFUE4xOS5NIysnL1qAyMCmCSzYvTM7KtgYG4cDBgACns8RxQwGBknTFw8AEpSCkpubucxgG0BgF1J33IAeg2YAFEMDA6KTe2BHCG8aigAD01KWTwEEEYMWAB3ShAACxgEJwQMOIgTAwI5bGA4WbgaC1IqyBIwV4qGDtRgXcEEKGwBLuNCjfAJCiWVpUWZdAbnEZeNZHeb4JZQMDLUHbLBxGCYA4YQnErYzOZ4vAAOk+KgA8q88KgDs5wF1xpMrEA
источник

ТФ

Татьяна Фомина in TypeScript — русскоговорящее сообщество
Mikhail 才藤 中村 Bashurov
Потому что useReducer сам принимает два типоаргумента (Стейт и акшн)
React.Reducer здесь не нужен
о, пасиб, прикольно
источник

c

cloudedbe in TypeScript — русскоговорящее сообщество
Mike Rize
Господа, хочу сделать жёсткую зависимость на наличие одного из двух пропсов.
И желательно чтобы можно было использовать только один из них.
Что же я делаю не так?
ну ты применяешь десктруктуризацию либо к {component: значение} либо к {render: значение}
Тобишь там возможна ситуация, что component будет undefined либо render будет undefined. Тебе надо дать возможность тсу вывести конкретный из двух интерфейсов
Если сделать const route: FunctionComponent<RouteType> = (data) => {
  if (data.component) {
     // здесь у тебя ts должен вывести
     // что дата это interface WithComponent
     const {component, children} = data
  }


  if (data.render) {
    // а тут наоборот
  }
}
источник

AP

Arnold Pataki in TypeScript — русскоговорящее сообщество
Пацыки, подскажите плиз. Есть объект, в нем есть значения null. Как мне в типах описать, чтобы TS вернул все остальные типы, кроме тех  которые равны null?
https://www.typescriptlang.org/play/index.html?ssl=10&ssc=52&pln=10&pc=53#code/MYewdgzgLgBCBGArGBeGBvAUDGBDAXDAIwA02M8hA5AExVk7CFgCuANm5gL4DcmmUAJ4AHAKYwAKgHkkqGELEgAZnCR8BI8QEkIAOXZtc8NqIA8EgHxysOANoBpGAEswMANajByyQF1CEhx8YUQAPKFEwABMIGFYOGAB+GABREOA2FkizDy8VCRIYeyt-QO5+BXEAQTkdfQ4jE3MZRAtMIA
источник

c

cloudedbe in TypeScript — русскоговорящее сообщество
Arnold Pataki
Пацыки, подскажите плиз. Есть объект, в нем есть значения null. Как мне в типах описать, чтобы TS вернул все остальные типы, кроме тех  которые равны null?
https://www.typescriptlang.org/play/index.html?ssl=10&ssc=52&pln=10&pc=53#code/MYewdgzgLgBCBGArGBeGBvAUDGBDAXDAIwA02M8hA5AExVk7CFgCuANm5gL4DcmmUAJ4AHAKYwAKgHkkqGELEgAZnCR8BI8QEkIAOXZtc8NqIA8EgHxysOANoBpGAEswMANajByyQF1CEhx8YUQAPKFEwABMIGFYOGAB+GABREOA2FkizDy8VCRIYeyt-QO5+BXEAQTkdfQ4jE3MZRAtMIA
источник

AP

Arnold Pataki in TypeScript — русскоговорящее сообщество
да мне чисто реализация интересна, сейчас гляну по коду, спасибо)
источник