Size: a a a

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

2021 January 18

キツネ in TypeScript — русскоговорящее сообщество
попробуй сделать condition ? renderPickerItem!(...)
источник

キツネ in TypeScript — русскоговорящее сообщество
то есть поставить !
источник

キツネ in TypeScript — русскоговорящее сообщество
если я все правильно понял то должно хоть че то поменяться 🗿
источник

A

Alexander in TypeScript — русскоговорящее сообщество
キツネ
а разве не понятно?
renderPickerItem необязательно находится в пропсах ?: потому его вызов может обернуться либо never либо React.ReactNode, never можно интерпретировать как undefined, следовательно <Item> будет возвращать либо React.ReactNode, либо undefined, а дальше дело техники, не?
Я проверяю есть ли renderPickerItem
источник

A

Alexander in TypeScript — русскоговорящее сообщество
Alexander
Переслано от Alexander
почему типы поехали?
вот
источник

キツネ in TypeScript — русскоговорящее сообщество
а блин я почему то подумал что там два разных значения и что в кондишне в тернарке это другая переменная
источник

キツネ in TypeScript — русскоговорящее сообщество
как сломать все мои предположения за одно утверждение
источник

M

Maksim Sharov in TypeScript — русскоговорящее сообщество
Alexander
Переслано от Alexander
почему типы поехали?
пишут https://stackoverflow.com/questions/54905376/type-error-jsx-element-type-null-undefined-is-not-a-constructor-functi не использовать реактнод с функциями
источник

A

Alexander in TypeScript — русскоговорящее сообщество
Спасибо, заменил на ReactElement
источник

B

BARSOOQUE in TypeScript — русскоговорящее сообщество
Илья
Дак из редукса подгружаются
У тебя там в connect App обвёрнут?
источник
2021 January 19

В

Вадим in TypeScript — русскоговорящее сообщество
const log = DEV ? console.log : noop;
Unsafe call of an any typed value.eslint@typescript-eslint/no-unsafe-call)

это о чем?
каждый из элементов определяется корректно ts но в выражении - ругается

const noop = (): void => { };
источник

И

Илья in TypeScript — русскоговорящее сообщество
BARSOOQUE
У тебя там в connect App обвёрнут?
Да
источник

B

BARSOOQUE in TypeScript — русскоговорящее сообщество
Илья
Да
То есть он не убирает из проспов прокинутое?
источник

B

BARSOOQUE in TypeScript — русскоговорящее сообщество
Илья
Да
А ты гуглил? Вот такое есть, тут немного тайпингов https://stackoverflow.com/questions/41808408/react-redux-typescript-connect-has-missing-type-error
источник

И

Илья in TypeScript — русскоговорящее сообщество
В таких случаях сложно Гуглу правильный вопрос задать. Спасибо, почитаю.
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
Utin Alexey
Привет всем.
enum Some {
   Base = "base",
   Intermediate = "intermediate",
   Full = "full",
   Single =  "single"
}

Как создать интерфейс, чтобы один из ключей был: или только Single, или SIngle && (Base | Intermediate | Full), т.е.
 interface Foo {
    option: {
         [Some.Single]: []
         или
         [Some.Single]: [],
         [Some.Full]: [] //к примеру
    }
}
Вообще есть некое заклинание, чтобы сделать exclusive or, но я бы сделал в виде tuple (см на extra)
{
 single: T1,
 extra?: [Exclude<Some, Some.Single>, T2],
}
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
Но если очень надо соблюсти именно такой API (потому что его задаёт внешняя библиотека), то вот про дистрибутивность, тоже вчера обсуждали
https://github.com/microsoft/TypeScript/issues/33110
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
{ [Some.Single]: T } & DistributeRecord<Exclude<Some, Some.Single>, T>
для DistributeRecord берёшь RecordItemsOrNull из примера по ссылке и заменяешь null на never
источник

u

uid in TypeScript — русскоговорящее сообщество
Ivan Iesaulov
Прямое указание типов (даже там, где тс может сам их вывести) уменьшает время сборки проекта?
Да, явное аннотирование типов (прежде всего, типов возвращаемых значений у функций) может ускорять тайп-чекинг, особенно при инкрементальной компиляции (явно указанные типы компактнее выведенных, и TS быстрее читает и записывает файл с JSON-представлением результатов предыдущей компиляции): Using Type Annotations.

Однако разница будет заметна, скорее всего, только на крупных проектах (сколько времени занимают разные шаги компиляции, можно посмотреть с помощью флага extendedDiagnostics).

Поэтому решение о явном указании типов лучше принимать из других соображений.

В средних проектах удобно полагаться на автовывод, и писать меньше типов.

В крупных проектах, с сильным зацеплением между модулями, с наличием разных потребителей модулей, может быть оправдано использование принципа инверсии зависимостей, требующего явного и отдельного от имплементаций определения всех типов, от которых зависит модуль.

Внутри модуля это может выглядеть, как дублирование (зачем импортировать откуда-то тип возвращаемого значения функции в модуле, если она сама может вывести этот тип?), но явное указание типов позволяет изменять реализацию модуля без правок в коде его потребителей.
источник

LC

Lapis Cursed in TypeScript — русскоговорящее сообщество
ts-node не хочет подключать таргет библиотеки из tsconfig'а, что делать? он вообще может поддерживать es2019?
источник