add react-list type define

This commit is contained in:
buptyyf
2017-06-19 23:45:29 +08:00
parent 8aff840533
commit c47d28db4a
3 changed files with 80 additions and 0 deletions

42
types/react-list/index.d.ts vendored Normal file
View File

@@ -0,0 +1,42 @@
// Type definitions for react-list v0.8.3
// Project: https://github.com/orgsync/react-list
// Definitions by: Yifei Yan <https://github.com/buptyyf>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import {
Component,
Props
} from "react";
export as namespace ReactList;
/*~ If this module has methods, declare them as functions like so.
*/
export function scrollTo(index: number): void;
export function scrollAround(index: number): void;
export function getVisibleRange(): Array<number>;
/*~ You can declare types that are available via importing the module */
type ItemRenderer = (index: number, key: number | string) => JSX.Element;
type ItemsRenderer = (items: Array<JSX.Element>, ref: string) => JSX.Element;
type ItemSizeEstimator = (index: number, cache: object) => number;
type ItemSizeGetter = (index: number) => number;
type ScrollParentGetter = () => JSX.Element;
export interface ReactListProps extends Props<ReactList> {
axis?: 'x' | 'y';
initialIndex?: number;
itemRenderer?: ItemRenderer;
itemSizeEstimator?: ItemSizeEstimator;
itemSizeGetter?: ItemSizeGetter;
itemsRenderer?: ItemsRenderer;
length?: number;
minSize?: number;
pageSize?: number;
scrollParentGetter?: ScrollParentGetter;
threshold?: number;
type?: string;
useStaticSize?: boolean;
useTranslate3d?: boolean;
}
export default class ReactList extends Component<ReactListProps, {}> {}

View File

@@ -0,0 +1,14 @@
import * as React from "react";
// import * as ReactDOM from "react-dom";
import ReactList from "react-list";
const renderItem = (index: number, key: number) =>
<div key={key} className={'item' + (index % 2 ? '' : ' even')}>
{index}
</div>;
<ReactList
itemRenderer={renderItem}
type="uniform"
length={1000}
/>;

View File

@@ -0,0 +1,24 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true,
"jsx": "react"
},
"files": [
"index.d.ts",
"react-list-tests.tsx"
]
}