Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | import React from 'react'
import { Merge } from '../types'
/**
* 派生新的组件属性。
*
* @template TComponent 原组件
* @template TExclude 需去除的属性
* @template TRef 新的 ref
* @template TOverride 覆盖属性
*/
export type DeriveComponentProps<
TComponent extends
| React.ComponentType
| keyof JSX.IntrinsicElements
| React.JSXElementConstructor<any>,
TExclude extends keyof React.ComponentProps<TComponent>,
TRef extends any = never,
TOverride extends Partial<
Record<keyof React.ComponentProps<TComponent>, any>
> = never
> = Merge<
Merge<
Omit<React.ComponentProps<TComponent>, TExclude>,
[TOverride] extends [never] ? {} : TOverride
>,
{ ref?: React.Ref<TRef> }
>
|