Size: a a a

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

2020 April 14

NT

Nikolay Tsygankov in TypeScript — русскоговорящее сообщество
даже если так то все равно проигрываю
const temp1 = create({ x1: 0 }, {
 x1Get1: (v, g) => v.x1,
 x1Get2: (v, g) => g.x1Get1(v, g),
});
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
А какой тип у g?
источник

NT

Nikolay Tsygankov in TypeScript — русскоговорящее сообщество
в данном случае unknown
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Странно, unknown очевидно не является подтипом Record
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Ошибок нет?
источник

NT

Nikolay Tsygankov in TypeScript — русскоговорящее сообщество
только то что g не является объектом и поэтому у него не может быть метода x1Get1
источник

РФ

Руслан Фадеев in TypeScript — русскоговорящее сообщество
Руслан Фадеев
Странно, unknown очевидно не является подтипом Record
Ааа, нет. Здесь g должно быть надтипом T2: если x1Get1 умеет принимать unknown, то всё ок, а вот если умеет принимать только подтип T2, то могла бы быть ошибка в рантайме.
Ура, я научился замечать проблемы с ко/контравариантностью
источник

EG

Egor Gorbachev in TypeScript — русскоговорящее сообщество
🦉 ⁣
затащить бы такой плагин в тайпскрипт
А что это, расширение типов?
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Egor Gorbachev
А что это, расширение типов?
это генерация кода из типов
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
🦉 ⁣
затащить бы такой плагин в тайпскрипт
И что на выходе бы было?
источник

p

polunin.ai in TypeScript — русскоговорящее сообщество
🦉 ⁣
затащить бы такой плагин в тайпскрипт
TS не Раст
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
И что на выходе бы было?
например, что-то вроде

const SessionCreateSucceeded = {
 serialize(value: SessionCreateSucceeded): string { /* */},
 deserialize(input: string): SessionCreateSucceeded | DeserializeError { /* */ },
 default(): SessionCreateSucceeded {}
}
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
polunin.ai
TS не Раст
И что?
источник

🦉⁣

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

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
и как я вижу, тс позволяет писать подобные плагины
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Конечно посложнее сделать, чем в расте
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Например у тебя есть

interface Bar {
foo: Foo
}

Как десереализовать Foo? В расте все просто, должны быть трейты, а тут нужно будет как то искать реализацию для Foo
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Например у тебя есть

interface Bar {
foo: Foo
}

Как десереализовать Foo? В расте все просто, должны быть трейты, а тут нужно будет как то искать реализацию для Foo
я думал искать не реализацию, а через тс выяснить структуру типа
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
и для начать с генерации валидаторов объектов
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
🦉 ⁣
я думал искать не реализацию, а через тс выяснить структуру типа
Ну это тоже гемор, нужно отслеживать всю цепочку импортов и алиасов
источник