Size: a a a

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

2020 March 31

И

Илья in TypeScript — русскоговорящее сообщество
artalar
: Data[keyof Data]
Огонь! Спасибо!
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
Посмотри вот сюда, там похожий кейс - и я описал утилитарную функцию дженериками, но использую ее не указывая типы вообще - а они выводятся
спасибо ещё раз)
источник

P

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

fe

from earth in TypeScript — русскоговорящее сообщество
Слушай а тут если вместо Key extends keyof any написать Key extends string, в чём разница?
источник

a

artalar in TypeScript — русскоговорящее сообщество
from earth
Слушай а тут если вместо Key extends keyof any написать Key extends string, в чём разница?
в keyof any входит number и symbol. Лучше string используй
источник

fe

from earth in TypeScript — русскоговорящее сообщество
artalar
в keyof any входит number и symbol. Лучше string используй
ага ок!
источник

V

Vladimir in TypeScript — русскоговорящее сообщество
Всем привет, сегодня попробовал писать на ТС и у меня возникла проблема:

делаю импорт с помощью алиасов в файлл tsx
import TargetForm from "GovernmentOrders/Components/Forms/TargetForm";

Но вознипкает вот такая ошибка  Не удается найти модуль, в тс конфиг в поле paths добавил такое правило "GovernmentOrders/*": [ "./Sources/Pages/GovernmentOrders/*" ], что я делаю не так или что еще нужно сделать, чтобы алиасы заработали? Спасибо!
источник

FW

Foggy White in TypeScript — русскоговорящее сообщество
Подскажите, не могу состояние правильно изменить React. Изменяю 1 чекбокс все меняются.

const [isCheckedTableBox, setCheckedTableBox] = React.useState();

const row = React.useMemo((): rowItems[] => (
       // eslint-disable-next-line arrow-body-style
       items.map((rowItem: TRowItem, rowIndex: number): TRowItemT => {
           if (dataCurrentRow && dataCurrentRow.id === rowItem.id) {
               // eslint-disable-next-line
               console.log('teps', dataCurrentRow.id)
               setCheckedTableBox({
                   ...isCheckedTableBox,
                   index: !isCheckedTableBox,
               });
           } else {
               setCheckedTableBox(false);
           }

           return ({
               ...rowItem,
               action: (
                   <div className="nomenclatures-table__row-actions">
                       <Checkbox checked={isCheckedTableBox.index} onChange={setCheckedTableBox} />
                   </div>
               ),
               name: rowItem.trade_name.name,
           });
       })), [items, isCheckedTableBox, dataCurrentRow]);
источник

IK

Iliya Kobaliya in TypeScript — русскоговорящее сообщество
Ребят,не найду,как проверить тип елемента дом дерева ?Точнее указать его тип?(селектора)
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Vladimir
Всем привет, сегодня попробовал писать на ТС и у меня возникла проблема:

делаю импорт с помощью алиасов в файлл tsx
import TargetForm from "GovernmentOrders/Components/Forms/TargetForm";

Но вознипкает вот такая ошибка  Не удается найти модуль, в тс конфиг в поле paths добавил такое правило "GovernmentOrders/*": [ "./Sources/Pages/GovernmentOrders/*" ], что я делаю не так или что еще нужно сделать, чтобы алиасы заработали? Спасибо!
Ошибка в рантайме? Конфиг тс влияет на разрешение модулей только на уровне типов. Это для случаев, когда в рантайме на разрешение модулей влияет вебпак/роллап
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Иными словами, алиасы сами по себе не повлияют на скомпилированный JS
источник
2020 April 01

VQ

Victor Queiroz in TypeScript — русскоговорящее сообщество
is English allowed here too?
источник

AB

Andrey Bodrov in TypeScript — русскоговорящее сообщество
Victor Queiroz
is English allowed here too?
You better move to discord typescript community: https://discord.gg/typescript
источник

VQ

Victor Queiroz in TypeScript — русскоговорящее сообщество
Andrey Bodrov
You better move to discord typescript community: https://discord.gg/typescript
Thanks
источник

VQ

Victor Queiroz in TypeScript — русскоговорящее сообщество
Andrey Bodrov
You better move to discord typescript community: https://discord.gg/typescript
Спасибо
источник

el

eden lane in TypeScript — русскоговорящее сообщество
Помогите правильно написать тип для кастомного Input.

Я пишу так:
type InputProps = {
 onChange(value: string): void
} & React.InputHTMLAttributes<HTMLInputElement>

(последнее - что бы добавить все пропы дефолтного инпута)

Но при попытке использовать onChange(value: string) в моём кастомном инпуте появляется ошибка - он ожидает onChange из дефолтного, html-ого инпута. Почему так и как мне сделать что бы мой onChange оверрайдил дефолтный?
источник

el

eden lane in TypeScript — русскоговорящее сообщество
eden lane
Помогите правильно написать тип для кастомного Input.

Я пишу так:
type InputProps = {
 onChange(value: string): void
} & React.InputHTMLAttributes<HTMLInputElement>

(последнее - что бы добавить все пропы дефолтного инпута)

Но при попытке использовать onChange(value: string) в моём кастомном инпуте появляется ошибка - он ожидает onChange из дефолтного, html-ого инпута. Почему так и как мне сделать что бы мой onChange оверрайдил дефолтный?
у onChange получается такой тип:
const onChange: ((event: React.ChangeEvent<HTMLInputElement>) => void) & ((value: string) => void)


почему их два и как это работает?
источник

el

eden lane in TypeScript — русскоговорящее сообщество
разобрался, надо делать
Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'>
источник

SU

Sergey Urzhumskov in TypeScript — русскоговорящее сообщество
или просто поменять операнды & местами
источник

el

eden lane in TypeScript — русскоговорящее сообщество
Sergey Urzhumskov
или просто поменять операнды & местами
пробовал, не помогало
источник