Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

hamster141095

  • 0
    вклад
  • 15
    вопросов
  • 1
    ответ
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как описать типы в данном компоненте React?

    bingo347
    Дмитрий Беляев @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Попробуйте поправить так:
    export const TypographyType = {
      [TypographyTypeStyle.h1]: 'h1',
      [TypographyTypeStyle.h2]: 'h2',
      [TypographyTypeStyle.h3]: 'h3',
      [TypographyTypeStyle.h4]: 'h4',
      [TypographyTypeStyle.p1]: 'p',
      [TypographyTypeStyle.p2]: 'p',
    } as const;

    as const зафиксирует литеральные типы на объекте, правда сам объект сделает readonly, если это не устраивает, то можно писать as const напротив каждого поля
    Ответ написан более года назад
    1 комментарий
    1 комментарий
  • Как сверстать фигуры на background' элемента?

    Steppp @Steppp
    Повесь на псевдоэлементы.
    Ну если дивы нельзя, то спаны используй, также 1 спан 1 квадрат и псевдо эл другой квадрат.
    linear-gradient не закруглишь углы, или костыляй)

    Я такое вырезаю в svg , и вставляю через
    background: url("data:image/svg+xml, --- --- --- ") center no-repeat;


    Так же можно и несколько
    background: url("data:image/svg+xml, --- --- --- ") center no-repeat,
                         url("data:image/svg+xml, --- --- --- ") center no-repeat,
                         url("data:image/svg+xml, --- --- --- ") center no-repeat;
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Как преобразовать имена свойств объекта из kebab-case в camelCase?

    bingo347
    Дмитрий Беляев @bingo347 Куратор тега TypeScript
    Crazy on performance...
    В дополнение к ответу 0xD34F нормальная типизация такой функции (нужен typescript 4.1 или выше):
    type AsCamelCase<S extends string> = S extends `${infer A}_${infer B}` ? `${A}${Capitalize<AsCamelCase<B>>}` : S;
    type CamelCaseKeysRecord<T> = T extends Record<PropertyKey, unknown> ? {
        [K in string & keyof T as AsCamelCase<K>]: CamelCaseKeysRecord<T[K]>;
    } & {
        [K in Exclude<keyof T, string>]: CamelCaseKeysRecord<T[K]>;
    } : T;
    
    function toCamelCaseKeys<T>(val: T): CamelCaseKeysRecord<T> {
        if (Array.isArray(val)) {
            return val.map(toCamelCaseKeys) as unknown as CamelCaseKeysRecord<T>;
        }
        if (typeof val === 'object') {
            return Object.fromEntries(Object
                .entries(val)
                .map(([k, v]) => [
                    k.replace(/_+(.)/g, (_, g) => g.toUpperCase()),
                    toCamelCaseKeys(v as Record<string, unknown>),
                ])) as CamelCaseKeysRecord<T>;
        }
        return val as unknown as CamelCaseKeysRecord<T>;
    }

    https://www.typescriptlang.org/play?target=7&ts=4....
    Ответ написан более года назад
    6 комментариев
    6 комментариев
  • Как преобразовать имена свойств объекта из kebab-case в camelCase?

    0xD34F
    0xD34F @0xD34F
    const toCamelCase = val =>
      val instanceof Array
        ? val.map(toCamelCase)
        : val instanceof Object
          ? Object.fromEntries(Object
              .entries(val)
              .map(n => [
                n[0].replace(/_+(.)/g, (m, g1) => g1.toUpperCase()),
                toCamelCase(n[1]),
              ])
            )
          : val;
    Ответ написан более года назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
Самые активные сегодня
  • Drno
    • 8 ответов
    • 1 вопрос
  • meidi
    Dlaynet tenyalD
    • 4 ответа
    • 3 вопроса
  • rPman
    • 7 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 5 ответов
    • 0 вопросов
  • mayton2019
    • 4 ответа
    • 0 вопросов
  • work_jabir
    Джабир
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации