Size: a a a

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

2020 April 14

LK

L K in TypeScript — русскоговорящее сообщество
Зигохистоморфный Препроморфизм
передавай флаг

fn flg1 (payload: Type1)
fn flg2 (payload: Type2)

или даже индексируй пейлоад

fn({flg: flgType1, payload: Type1})
и делай перегрузку
точно, перегрузка, спасибо
источник

AS

Alexander Shushunov in TypeScript — русскоговорящее сообщество
Всем привет. Начал копать TS. Может кто подскажет, почему во втором варианте нет ошибки?
const o: { f: number } = {f: 44, d: 4}
const po: Promise<{ f: number }> = Promise.resolve({ f: 44, d: 4 })


https://www.typescriptlang.org/play/index.html#code/MYewdgzgLgBCBcMDeMBmiwFcC2AjApgE4wC+MAvMujACw0A0MAJojSQFCiSwAOCMABUIhsASwj4APCmpY8RUgD4Kg4WIkA6QvgggANgDd8AChmsGzVqQCUQA
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Alexander Shushunov
Всем привет. Начал копать TS. Может кто подскажет, почему во втором варианте нет ошибки?
const o: { f: number } = {f: 44, d: 4}
const po: Promise<{ f: number }> = Promise.resolve({ f: 44, d: 4 })


https://www.typescriptlang.org/play/index.html#code/MYewdgzgLgBCBcMDeMBmiwFcC2AjApgE4wC+MAvMujACw0A0MAJojSQFCiSwAOCMABUIhsASwj4APCmpY8RUgD4Kg4WIkA6QvgggANgDd8AChmsGzVqQCUQA
потому что это сужение типа
источник

🦉⁣

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

AS

Alexander Shushunov in TypeScript — русскоговорящее сообщество
В первой строчке то же )
источник

ЗП

Зигохистоморфный Препроморфизм in TypeScript — русскоговорящее сообщество
🦉 ⁣
потому что это сужение типа
сабтайпиг же)
источник

ЗП

Зигохистоморфный Препроморфизм in TypeScript — русскоговорящее сообщество
для рекордов
источник

AS

Alexander Shushunov in TypeScript — русскоговорящее сообщество
В первой строке тоже сабтайпиг
источник

🦉⁣

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

🦉⁣

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

ЗП

Зигохистоморфный Препроморфизм in TypeScript — русскоговорящее сообщество
Alexander Shushunov
В первой строке тоже сабтайпиг
потому что там промис, тут не понятно в какой позиции промис
источник

ЗП

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

Р(

Роман ((((( in TypeScript — русскоговорящее сообщество
Всем привет, как можно передать тип в функцию? Он ругается, что «Property 'param1' does not exist on type 'T'»
Функция используется много где, поэтому тип будет всегда разный

const test = <T>(params: T) => {
 const getParam = params.param1;
};

interface ParamsType {
 param1: string;
}

const params: ParamsType = { param1: 'string' };

test<ParamsType>(params);
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Роман (((((
Всем привет, как можно передать тип в функцию? Он ругается, что «Property 'param1' does not exist on type 'T'»
Функция используется много где, поэтому тип будет всегда разный

const test = <T>(params: T) => {
 const getParam = params.param1;
};

interface ParamsType {
 param1: string;
}

const params: ParamsType = { param1: 'string' };

test<ParamsType>(params);
на момент определения test
функция не знает, что за T

ведь там может быть и number и string
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
const test = <T extends { param1: string }>(params: T) => {
 const getParam = params.param1;
};
источник

🦉⁣

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

Р(

Роман ((((( in TypeScript — русскоговорящее сообщество
🦉 ⁣
на момент определения test
функция не знает, что за T

ведь там может быть и number и string
Просто у меня эта функция используется в разных частях кода и каждый раз тип params разный. Я так понимаю, что как-то динамически передать тип для params не выйдет?
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Роман (((((
Просто у меня эта функция используется в разных частях кода и каждый раз тип params разный. Я так понимаю, что как-то динамически передать тип для params не выйдет?
если хочешь обращаться к содержимому T, нужно точно знать, что там будет лежать
источник

🦉⁣

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

Р(

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