ваш способ работает, у вас все задано как нужно. Вопрос теперь - какая ошибка? У меня даже с тайпскриптом никаких ошибок нет
У тебя синтаксис неправильный вроде, тебе в стилях надо написать например margin: “var(—your-margin)”
в общем, тут проблема в типах. Можно заигнорить и ищью создать. Сам функционал работает
Ещё как выдаёт. И именно тайпскрипт Type '{ '--var': string; }' is not assignable to type 'Properties<string | number, string & {}>'. Object literal may only specify known properties, and ''--max-height'' does not exist in type 'Properties<string | number, string & {}>'.
Уже обсудили. Мне нужно не использовать переменную, а задать
да у меня IDE как всегда сто лет ошибки обрабатывает. Это ошибка в тайпингах CSSProperties. Они некорректные. Сама функция работает
К сожалению или счастью, но типам соответствовать надо
к сожалению или счастью, проблема в самих типах, они кривые
Пишем issue разработчикам React)
Ненадо делать сайдеффекты в рендере.
не реакт, у них TS в репозитории нет. Это @types/react, если не ошибаюсь
это уже он сам решит, наверное, да и не совсем ясно, при чем тут сайдэффекты
as CSSProperties
А давно css переменные стали локальными?
с тех пор как добавили custom properties
О, нашел свою хренотень import React from 'react'; /** * @see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087#issuecomment-726158907 */ declare module 'react' { function memo<T extends React.ComponentType<any>>( c: T, areEqual?: ( prev: Readonly<React.ComponentProps<T>>, next: Readonly<React.ComponentProps<T>> ) => boolean ): T & { displayName?: string | undefined; }; interface CSSProperties extends React.CSSProperties { [key: `--${string}`]: string | number | null | void; } }
Спасибо, более элегантно)
Добавь это в декларацию // overrides.d.ts // <- сюда вставь // tsconfig.json { … “include”: [“overrides.d.ts”, “**/*.ts”, “**/*.tsx”] }
Обсуждают сегодня