feat: add generic type test

This commit is contained in:
Horiuchi_H
2017-11-27 13:22:27 +09:00
parent ba40bebaf2
commit c8a445c4f1
2 changed files with 15 additions and 2 deletions

View File

@@ -8,7 +8,7 @@
import * as React from 'react';
declare class ReactSwipeable extends React.Component<ReactSwipeable.SwipeableProps> {}
declare class ReactSwipeable<T extends Element = HTMLElement> extends React.Component<ReactSwipeable.SwipeableProps<T>> {}
declare namespace ReactSwipeable {
type OnSwipingCallback<T extends Element = HTMLElement> = (event: React.TouchEvent<T>, deltaX: number, deltaY: number, absX: number, absY: number, velocity: number) => void;
@@ -17,7 +17,7 @@ declare namespace ReactSwipeable {
type OnSwipingDirectionCallback<T extends Element = HTMLElement> = (event: React.TouchEvent<T>, delta: number) => void;
type OnTapCallback<T extends Element = HTMLElement> = (event: React.TouchEvent<T>) => void;
interface SwipeableProps<T extends Element = HTMLElement> extends React.ClassAttributes<ReactSwipeable>, React.HTMLAttributes<T> {
interface SwipeableProps<T extends Element = HTMLElement> extends React.ClassAttributes<ReactSwipeable<T>>, React.HTMLAttributes<T> {
onSwiped?: OnSwipedCallback<T>;
onSwiping?: OnSwipingCallback<T>;
onSwipingUp?: OnSwipingDirectionCallback<T>;

View File

@@ -46,3 +46,16 @@ class SampleComponent extends React.PureComponent<Swipeable.SwipeableProps> {
);
}
}
class DivSwipeable extends Swipeable<HTMLDivElement> {}
const TestComponent: React.StatelessComponent<{}> = (_) => {
const handleSwiped = (event: React.TouchEvent<HTMLDivElement>) => {};
return (
<DivSwipeable
nodeName="div"
onSwiped={handleSwiped}
>
<div>this is sample code.</div>
</DivSwipeable>
);
};