Types and Interfaces are ignored in mui/system styled function
Open
@mnajdova is already working on this.
Since May 9, 2023.
package: styled-engine-sc
scope: system
type: bug
typescript
- Dominant language
- JavaScript
- Stars
- 99.1k
- Forks
- 32.5k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 106
Description
Duplicates
- I have searched the existing issues
Latest version
- I have tested the latest version
Steps to reproduce 🕹
Link to live example:
Steps:
- Download this project:
curl https://codeload.github.com/mui/material-ui/tar.gz/master | tar -xz --strip=2 material-ui-master/examples/material-cra-styled-components-ts
cd material-cra-styled-components-ts
npm install
- Copy the following code:
import { styled } from '@mui/system';
interface ParagraphProps {
color: 'green' | 'blue';
}
export const Paragraph = styled('p')<ParagraphProps>(({ color }) => ({
color: color || '#000',
fontSize: '18px',
fontWeight: 'bold',
}));
Paragraph({ color: 'red' });
Current behavior 😯
No errors shown
Expected behavior 🤔
Last line throws
Type '"red"' is not assignable to type '"green" | "blue"'.ts(2769)
Context 🔦
I am trying to provide an Interface/type around which properties and values a MUI Styled Component should admit to avoid issues during the development process and its maintenance, which is one of the key points within the CSS-in-JS concept.
Your environment 🌎
npx @mui/envinfo
Don't forget to mention which browser you used.
Output from `npx @mui/envinfo` goes here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.