Skip to content

Commit b82093c

Browse files
authored
🤖 Merge PR DefinitelyTyped#71163 fix(styled-system): fix conditionals to make it work with exactOptionalPropertyTypes: true by @yuhr
1 parent 0dc068d commit b82093c

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

types/styled-system/index.d.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ export type ResponsiveValue<
3737
ThemeType extends Theme = RequiredTheme,
3838
> = T | null | Array<T | null> | { [key in ThemeValue<"breakpoints", ThemeType> & string | number]?: T };
3939

40-
export type ThemeValue<K extends keyof ThemeType, ThemeType, TVal = any> = ThemeType[K] extends TVal[] ? number
41-
: ThemeType[K] extends Record<infer E, TVal> ? E
42-
: ThemeType[K] extends ObjectOrArray<infer F> ? F
40+
export type ThemeValue<K extends keyof ThemeType, ThemeType, TVal = any> = NonNullable<ThemeType[K]> extends TVal[]
41+
? number
42+
: NonNullable<ThemeType[K]> extends Record<infer E, TVal> ? E
43+
: NonNullable<ThemeType[K]> extends ObjectOrArray<infer F> ? F
4344
: never;
4445

4546
export interface SpaceProps<ThemeType extends Theme = RequiredTheme, TVal = ThemeValue<"space", ThemeType>> {

types/styled-system/tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"strictFunctionTypes": true,
1212
"types": [],
1313
"noEmit": true,
14-
"forceConsistentCasingInFileNames": true
14+
"forceConsistentCasingInFileNames": true,
15+
"exactOptionalPropertyTypes": true
1516
},
1617
"files": [
1718
"index.d.ts",

0 commit comments

Comments
 (0)