Skip to content

Commit 6ff30e6

Browse files
committed
Fix: Correct type inference for ReturnType in styled component proxy
1 parent 7e9ea82 commit 6ff30e6

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

packages/react/src/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ type ReturnType<K extends IntrinsicElementsKeys | React.ComponentType<any>, E ex
3636
const styled: {
3737
[key in IntrinsicElementsKeys]: (<E extends object = object>(firstParam: TemplateStringsArray | ParamType<key, E>, ...params: ParamsType<key, E>) => MasterExoticComponent<key, E>)
3838
& (<F extends MasterExoticComponent<any, any>, E extends object = object>(firstParam: F) => F extends MasterExoticComponent<any, infer ME> ? ReturnType<key, ME & E> : never)
39-
} & (<F extends MasterExoticComponent<any>, E extends object = object>(firstParam: F) => F extends MasterExoticComponent<infer K, infer ME> ? ReturnType<K, ME & E> : never) & (<E extends object = object>(firstParam: TemplateStringsArray | ParamType<'div', E>, ...params: ParamsType<'div', E>) => MasterExoticComponent<'div', E>) & //@ts-ignore
40-
(<F extends React.ComponentType<any>, E extends object = object>(firstParam: F, ...params: F extends React.ComponentType<infer RE> ? ParamsType<'div', RE & E> : never) => F extends React.ComponentType<infer RE> ? ReturnType<React.ComponentType<RE & E>> : never) = new Proxy(
39+
} & (<F extends MasterExoticComponent<any>, E extends object = object>(firstParam: F) => F extends MasterExoticComponent<infer K, infer ME> ? ReturnType<K, ME & E> : never)
40+
& (<E extends object = object>(firstParam: TemplateStringsArray | ParamType<'div', E>, ...params: ParamsType<'div', E>) => MasterExoticComponent<'div', E>)
41+
& (<F extends React.ComponentType<any>, E extends object = object>(firstParam: F, ...params: F extends React.ComponentType<infer RE> ? ParamsType<'div', RE & E> : never) => F extends React.ComponentType<infer RE> ? ReturnType<React.ComponentType<RE>, E> : never) = new Proxy(
4142
((firstParam: any, ...params: any[]) => {
4243
return (Array.isArray(firstParam) && 'raw' in firstParam || typeof firstParam !== 'object' || !('render' in firstParam))
4344
? styled.div(firstParam as any, ...params)

0 commit comments

Comments
 (0)