Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[styles] Add support for TypeScript 4.1 #23633

Merged
merged 5 commits into from
Nov 22, 2020
Merged

Conversation

eps1lon
Copy link
Member

@eps1lon eps1lon commented Nov 20, 2020

  1. [core] Don't bail on monorepo typescript task
    Right now we're exiting on the very first error.
    This is not in line with other test-like tasks we have (e.g. yarn lint or yarn test:unit).
    It also hid a more severe issue makeStyles overload breakage with TypeScript 4.1 #23627.

  2. [styles] Fix useStyles requiring props in TS 4.1

    docs: src/pages/components/drawers/PersistentDrawerLeft.tsx(88,19): error TS2554: Expected 1 arguments, but got 0.

    -- https://app.circleci.com/pipelines/github/mui-org/material-ui/27542/workflows/e3a4c4a4-19dc-4c38-84d9-044fc34a6fd3/jobs/197844

  3. [utils] Fix deepmerge return type for falsy inputs

    @material-ui/core: ../material-ui-utils/src/deepmerge.ts(2,3): error TS2322: Type 'unknown' is not assignable to type 'boolean'.

    -- https://app.circleci.com/pipelines/github/mui-org/material-ui/27542/workflows/e3a4c4a4-19dc-4c38-84d9-044fc34a6fd3/jobs/197844

Closes #23627

@eps1lon eps1lon added test typescript package: styles Specific to @mui/styles. Legacy package, @material-ui/styled-engine is taking over in v5. package: utils Specific to the @mui/utils package package: material-ui Specific to @mui/material labels Nov 20, 2020
@mui-pr-bot
Copy link

mui-pr-bot commented Nov 20, 2020

Details of bundle changes

Generated by 🚫 dangerJS against d95e640

@eps1lon eps1lon marked this pull request as ready for review November 20, 2020 15:04
export default function makeStyles<
Theme = DefaultTheme,
Props extends {} = {},
Props extends object = {},
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Little correction while we're at it. The types we pass this to expect object as well.

Comment on lines -84 to 85
// would be nice to have at least a compile time error because we forgot the argument
// @ts-expect-error
const classes = useUnsafeProps(); // runtime: Can't read property color of undefined
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually improved the types.

@oliviertassinari oliviertassinari merged commit ac5c206 into mui:next Nov 22, 2020
@eps1lon eps1lon deleted the fix/ts-41 branch November 22, 2020 11:07
@oliviertassinari oliviertassinari changed the title [core] Add support for TypeScript 4.1 [styles] Add support for TypeScript 4.1 Nov 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package: material-ui Specific to @mui/material package: styles Specific to @mui/styles. Legacy package, @material-ui/styled-engine is taking over in v5. package: utils Specific to the @mui/utils package test typescript
Projects
None yet
Development

Successfully merging this pull request may close these issues.

makeStyles overload breakage with TypeScript 4.1
3 participants