Skip to content

Commit bc118e9

Browse files
committed
Requested Changes Part 1
* Reapply types that were accidentally deleted. * Add additional tests for implicitly determining prop types.
1 parent 44c1afd commit bc118e9

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

packages/jss/src/index.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ export type CreateGenerateId = (options?: CreateGenerateIdOptions) => GenerateId
5353
export type GenerateId = (rule: Rule, sheet?: StyleSheet<string>) => string
5454

5555
export type JssValue =
56-
| string
57-
| number
56+
| (string & {})
57+
| (number & {})
5858
| Array<string | number | Array<string | number> | '!important'>
5959
| null
6060
| false

packages/react-jss/tests/types/createUseStyles.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,24 @@ const themeArg6ClassesFail = themeArg6({theme: {}})
8080
const themeArg6ClassesFail2 = themeArg6({theme: expectedDefaultTheme})
8181
const themeArg6ClassesPass = themeArg6({theme: expectedCustomTheme})
8282

83+
// Props can be determined implicitly
84+
const themeArg7 = createUseStyles(theme => ({
85+
checkbox: ({property}: MyProps) => ({
86+
borderColor: property
87+
})
88+
}))
89+
90+
// @ts-expect-error invalid props
91+
const themeArg7ClassesFail = themeArg7({colour: 'green'})
92+
// @ts-expect-error extraneous props
93+
const themeArg7ClassesFail2 = themeArg7({...expectedCustomProps, someUnTypedProp: 1})
94+
const themeArg7ClassesPass = themeArg7(expectedCustomProps)
95+
96+
// Classes check
97+
const themeArgClasses7String: string = themeArg7ClassesPass.checkbox
98+
// @ts-expect-error invalid className
99+
themeArg7ClassesPass.doesntExist
100+
83101
/* -------------------- NO THEME ARGUMENT -------------------- */
84102
// Regular, static styles work fine
85103
const noThemeArg1 = createUseStyles({
@@ -200,3 +218,21 @@ const noThemeArg7 = createUseStyles<MyProps, MyTheme>({
200218
}
201219
}
202220
})
221+
222+
// Props can be determined implicitly
223+
const noThemeArg8 = createUseStyles({
224+
checkbox: ({property}: MyProps) => ({
225+
borderColor: property
226+
})
227+
})
228+
229+
// @ts-expect-error invalid props
230+
const noThemeArg8ClassesFail = noThemeArg8({colour: 'green'})
231+
// @ts-expect-error extraneous props
232+
const noThemeArg8ClassesFail2 = noThemeArg8({...expectedCustomProps, someUnTypedProp: 1})
233+
const noThemeArg8ClassesPass = noThemeArg8(expectedCustomProps)
234+
235+
// Classes check
236+
const noThemeArg8ClassesString: string = noThemeArg8ClassesPass.checkbox
237+
// @ts-expect-error invalid className
238+
noThemeArg8ClassesPass.doesntExist

0 commit comments

Comments
 (0)