@@ -4042,6 +4042,102 @@ ruleTester.run('prop-types', rule, {
4042
4042
}}
4043
4043
/>
4044
4044
` ,
4045
+ } ,
4046
+ {
4047
+ code : `
4048
+ import React, { forwardRef } from 'react';
4049
+ import { ControlProps, NamedProps } from './ext';
4050
+
4051
+ type ButtonProps = ControlProps & NamedProps & {
4052
+ onClick?: (() => void) | undefined;
4053
+ onMouseDown?: (() => void) | undefined;
4054
+ onMouseUp?: (() => void) | undefined;
4055
+ disabled?: boolean | undefined;
4056
+ width?: number;
4057
+ type?: 'submit' | 'reset' | 'button' | undefined;
4058
+ };
4059
+
4060
+ const BaseButton = forwardRef<HTMLButtonElement, ButtonProps>((
4061
+ {
4062
+ name,
4063
+ className,
4064
+ onClick,
4065
+ onMouseDown,
4066
+ onMouseUp,
4067
+ children,
4068
+ disabled,
4069
+ width,
4070
+ type,
4071
+ },
4072
+ ref,
4073
+ ): JSX.Element => {
4074
+ return <span>{width}</span>;
4075
+ });
4076
+ ` ,
4077
+ features : [ 'ts' , 'no-babel' ] ,
4078
+ } ,
4079
+ {
4080
+ code : `
4081
+ import React, { forwardRef } from 'react';
4082
+ import { ControlProps, NamedProps } from './ext';
4083
+
4084
+ interface ButtonProps extends NamedProps {
4085
+ onClick?: (() => void) | undefined;
4086
+ onMouseDown?: (() => void) | undefined;
4087
+ onMouseUp?: (() => void) | undefined;
4088
+ disabled?: boolean | undefined;
4089
+ width?: number;
4090
+ type?: 'submit' | 'reset' | 'button' | undefined;
4091
+ };
4092
+
4093
+ const BaseButton = forwardRef<HTMLButtonElement, ButtonProps>((
4094
+ {
4095
+ name,
4096
+ className,
4097
+ onClick,
4098
+ onMouseDown,
4099
+ onMouseUp,
4100
+ children,
4101
+ disabled,
4102
+ width,
4103
+ type,
4104
+ },
4105
+ ref,
4106
+ ): JSX.Element => {
4107
+ return <span>{width}</span>;
4108
+ });
4109
+ ` ,
4110
+ features : [ 'ts' , 'no-babel' ] ,
4111
+ } ,
4112
+ {
4113
+ code : `
4114
+ import React, { forwardRef } from 'react';
4115
+ import { IExt1 } from './ext';
4116
+
4117
+ interface IProps extends IExt1 {
4118
+ onClick?: (() => void) | undefined;
4119
+ onMouseDown?: (() => void) | undefined;
4120
+ onMouseUp?: (() => void) | undefined;
4121
+ disabled?: boolean | undefined;
4122
+ width?: number;
4123
+ type?: 'submit' | 'reset' | 'button' | undefined;
4124
+ };
4125
+
4126
+ const Button: React.FC<IProps> = ({
4127
+ name,
4128
+ className,
4129
+ onClick,
4130
+ onMouseDown,
4131
+ onMouseUp,
4132
+ children,
4133
+ disabled,
4134
+ width,
4135
+ type,
4136
+ }): JSX.Element => {
4137
+ return <span>{width}</span>;
4138
+ };
4139
+ ` ,
4140
+ features : [ 'ts' , 'no-babel' ] ,
4045
4141
}
4046
4142
) ) ,
4047
4143
0 commit comments