Я использую Typescript и React с Material-UI. Я использую решение для стилизации Material-UI (CSS в JS) в стиле Hook, как описано в их документах:
const useStyles = makeStyles({
root: {
background: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
border: 0,
borderRadius: 3,
boxShadow: '0 3px 5px 2px rgba(255, 105, 135, .3)',
color: 'white',
height: 48,
padding: '0 30px',
},
});
export default function Hook() {
const classes = useStyles();
return <Button className={classes.root}>Hook</Button>;
}
И я хочу, чтобы Eslint обнаруживал, не используется ли свойство объекта classes
. Потому что после наличия более 6 свойств (правил CSS) становится довольно сложно определить, какие из них используются или используются ли они когда-либо. Я пробовал eslint-plugin-unicorn
с их no-unused-properties
правилом, хотя он мог обнаруживать неиспользуемые свойства в объекте, если объект был объявлен и одно из его свойств было доступно с помощью точечной нотации:
const styles = {
success: { … },
danger: { … } // <- Property `danger` is defined but never used
};
console.log(styles.success)
Но в первом примере кода, где я передаю объект в качестве аргумента другой функции и еще несколько шагов, он не может определить, используются ли свойства classes
, который теперь является объектом со свойствами стиля, или нет. Я хочу понять, почему это так и в чем причина? (Я также новичок в Typescript) Я был бы признателен за объяснение того, почему линтер не может предупредить меня о неиспользуемых свойствах в объекте classes
в первом примере. Заранее спасибо.