Typescript не ругается на ваше "xxx-xxx", тк в React допускаются компоненты с дефисами. Но, такие атрибуты не могут быть напрямую указаны в типе свойств компонента, тк дефис является недопустимым символом в идентификаторах ts.
Чтобы исправить подобное поведение, можно написать интерфейс для свойств компонента.
interface MyProps extends React.HTMLAttributes<HTMLDivElement> {
'xxx-xxx'?: string;
}
Далее используем MyProps в роли типа свойств компонента:
const D: FC<MyProps > = ...
Теперь тс будет проверять тип передаваемых свойств, в тч ваш "xxx-xxx". Если "xxx-xxx" не будет в свойствах компонента, он примет значение undefined