Size: a a a

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

2021 January 18

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
В TS нет "равен" (в явном виде), есть только extends. Конкретно в случае с примером в виде константы extends 'one' может быть только один вариант — эта самая строка. Если какой-то более сложный тип, то можно поискать готовые utility-типы
источник

АИ

Артем Ильченко... in TypeScript — русскоговорящее сообщество
Kirill Sukhomlin
лучше напиши явно <string> в вызове
окей понял, спасибо)
источник

M

Maksim Sharov in TypeScript — русскоговорящее сообщество
Kirill Sukhomlin
В TS нет "равен" (в явном виде), есть только extends. Конкретно в случае с примером в виде константы extends 'one' может быть только один вариант — эта самая строка. Если какой-то более сложный тип, то можно поискать готовые utility-типы
можно пояснение про нет "равен" в явном виде? это относится к типам или с литеральными значениями (типа 1 === 1) тоже работает?
источник

AM

Art Mas in TypeScript — русскоговорящее сообщество
Kirill Sukhomlin
В TS нет "равен" (в явном виде), есть только extends. Конкретно в случае с примером в виде константы extends 'one' может быть только один вариант — эта самая строка. Если какой-то более сложный тип, то можно поискать готовые utility-типы
чёт всё равно не могу понять как победить это :(
источник

AM

Art Mas in TypeScript — русскоговорящее сообщество
Kirill Sukhomlin
В TS нет "равен" (в явном виде), есть только extends. Конкретно в случае с примером в виде константы extends 'one' может быть только один вариант — эта самая строка. Если какой-то более сложный тип, то можно поискать готовые utility-типы
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
чё-то сложно
источник

M

Maksim Sharov in TypeScript — русскоговорящее сообщество
Art Mas
чёт всё равно не могу понять как победить это :(
дженерик как написал, ошибся, дай ссылку
источник

AM

Art Mas in TypeScript — русскоговорящее сообщество
Maksim Sharov
дженерик как написал, ошибся, дай ссылку
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
type Mapping = { one: 'x', two: 'y' };
type getShapeCfg = <T extends keyof Mapping>(type: T) => Mapping[T]
источник

KS

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

VL

Valerii Leontiev in TypeScript — русскоговорящее сообщество
ребят, пошел другим путем, вынес все же в один компоенент

import { FC } from "react";
import SocialLogin from "react-social-login";

const SocialButton:FC = (props: any) =>  { return ( <button onClick={props.triggerLogin} {...props}>
   {props.children}
   </button>
   );
}

export default SocialLogin(SocialButton);


Почему компилятор ругается?
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
да, там есть разница между
type My<T> = (...) => ...
и
type My = <T>(...) => ...
источник

VL

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

M

Maksim Sharov in TypeScript — русскоговорящее сообщество
ну, это ваще T extends 'one' | 'two' = 'one' | 'two'
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
вынеси в alias
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
type K = 'one' | 'two';
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
type getShapeConfig<T extends Types> =
 (type: T) => T extends 'one' ? 'x' : 'y';
const shapeCfg: getShapeConfig<Types> =
 (type: Types) => type === 'one' ? 'x' : 'y';
источник

キツネ in TypeScript — русскоговорящее сообщество
Lapis Cursed
А, ну можно еще так писать
import * as LocalSession from 'telegraf-session-local';
Это все исправляет, мне просто в подсказке кидало только вариант с require.
когда разрабам абсолютно плевать)(
источник

KS

Kirill Sukhomlin in TypeScript — русскоговорящее сообщество
фактически, у тебя уже есть тип Types
источник

AM

Art Mas in TypeScript — русскоговорящее сообщество
огонь, спасибо!
источник