mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-25 16:11:24 +08:00
add react-list type define
This commit is contained in:
42
types/react-list/index.d.ts
vendored
Normal file
42
types/react-list/index.d.ts
vendored
Normal 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, {}> {}
|
||||
14
types/react-list/react-list-tests.tsx
Normal file
14
types/react-list/react-list-tests.tsx
Normal 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}
|
||||
/>;
|
||||
|
||||
24
types/react-list/tsconfig.json
Normal file
24
types/react-list/tsconfig.json
Normal 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"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user