Size: a a a

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

2020 April 16

OK

Oleksandr Khotemskyi in TypeScript — русскоговорящее сообщество
Александр Колиух
Приветули.
Есть обьект с темами:
export const themes = {
 themeDark: 'theme-dark',
 themeLight: 'theme-light',
};

Как сделать чтобы функция принимала только значения обьекта themes?
export const changeTheme = (theme: string) => {
можешь сделать enum
источник

AK

Andrey Kurnoskin in TypeScript — русскоговорящее сообщество
Александр Колиух
Keyof  же по ключам смотрит, мне бы значения
export const themes = {
 themeDark: 'theme-dark' as const,
 themeLight: 'theme-light' as const
};

type themeValues = typeof themes[keyof typeof themes];
источник

🦉⁣

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

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Никак, только any
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Ну или объявить как  { type?: unknown } а не object
источник

DS

Denis ø Skiba in TypeScript — русскоговорящее сообщество
function isType(object: {string: any}, type: string)

а так почему нельзя?
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
Ну или объявить как  { type?: unknown } а не object
бля
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Но это тоже не особо
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Denis ø Skiba
function isType(object: {string: any}, type: string)

а так почему нельзя?
потому что там может быть абсолютно любой объект
источник

AK

Andrey Kurnoskin in TypeScript — русскоговорящее сообщество
Тайпгвардом
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Andrey Kurnoskin
Тайпгвардом
🤦‍♂️
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
Andrey Kurnoskin
Тайпгвардом
покажи пример?)
источник

MK

Mikhail Kilin in TypeScript — русскоговорящее сообщество
const TYPE = 'type' as const
источник

VK

Vladimir Kurchatkin in TypeScript — русскоговорящее сообщество
Mikhail Kilin
const TYPE = 'type' as const
И что это даст? Правильно, ничего
источник

OK

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

АК

Александр Колиух in TypeScript — русскоговорящее сообщество
Andrey Kurnoskin
export const themes = {
 themeDark: 'theme-dark' as const,
 themeLight: 'theme-light' as const
};

type themeValues = typeof themes[keyof typeof themes];
спасибо, сладкий
источник

MK

Mikhail Kilin in TypeScript — русскоговорящее сообщество
Vladimir Kurchatkin
И что это даст? Правильно, ничего
Можно тогда object заменить на Record<string, unknown>
источник

🦉⁣

🦉 ⁣ in TypeScript — русскоговорящее сообщество
странно, что ‘type’ in object
не является гардом
источник

АЗ

Андрей Звёздочка in TypeScript — русскоговорящее сообщество
источник

AK

Andrey Kurnoskin in TypeScript — русскоговорящее сообщество
🦉 ⁣
покажи пример?)
источник