вывести типы
type FeedItem = {};
type RecipientsMissing = {};
class Test {
private compareSubscribersDroppingLatestIsAllowed(itemV: FeedItem, itemA: FeedItem):
{ subscribersAreEqual: true, comparisonResult: RecipientsMissing }
| { subscribersAreEqual: false, error: string } {
if(1===1) {
// case 1 works
return {subscribersAreEqual: false, error: 'error!'};
} else {
// case 2 does not
let res = {subscribersAreEqual: true, comparisonResult: {}};
return res;
}
}
}
чатгпт предложил во 2м типе явно объявить тип res переменной
но неужели ts не может вывести тип - у нас же duck typing ????
{} - это почти что any))), если нужно объявить пустой объект - можно использовать Record<PropertyKey, never>
> во 2м типе явно объявить тип res можно ещё let res = {...} as const а так увы, да
это фейк пример - я код написал минимальный показать вам проблему не туда смотрите
а что за as const?
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions > no literal types in that expression should be widened а в примере щас, например, true превращается в boolean и не подходит потом к типу
В тс не утиная типизация, а струтурная
по-моему IDE тут и без ; всё равильно распарсила. а вот разобраться с типами уже не смогла
Обсуждают сегодня