Skip to content

Commit 6136d72

Browse files
committed
add type defination
1 parent eb5a7bb commit 6136d72

File tree

4 files changed

+349
-103
lines changed

4 files changed

+349
-103
lines changed

package.json

+104-103
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,105 @@
11
{
2-
"name": "better-scroll",
3-
"version": "1.3.1",
4-
"description": "inspired by iscroll, and it has a better scroll perfermance",
5-
"author": {
6-
"name": "huangyi",
7-
"email": "[email protected]"
8-
},
9-
"main": "dist/bscroll.js",
10-
"scripts": {
11-
"dev": "node build/dev-server.js",
12-
"build": "node build/build.js",
13-
"doc": "cd doc && gitbook install && gitbook serve",
14-
"build:demo": "node build/build-demo",
15-
"build:doc": "sh build/doc.sh",
16-
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
17-
"test": "npm run unit && npm run codecov",
18-
"codecov": "codecov"
19-
},
20-
"bugs": {
21-
"url": "https://github.com/ustbhuangyi/better-scroll/issues"
22-
},
23-
"homepage": "https://github.com/ustbhuangyi/better-scroll",
24-
"keywords": [
25-
"scroll",
26-
"iscroll",
27-
"javascript",
28-
"ios"
29-
],
30-
"licenses": "MIT",
31-
"repository": {
32-
"type": "git",
33-
"url": "[email protected]:ustbhuangyi/better-scroll.git"
34-
},
35-
"dependencies": {
36-
"babel-runtime": "^6.0.0"
37-
},
38-
"devDependencies": {
39-
"babel-core": "^6.9.1",
40-
"babel-eslint": "^6.1.2",
41-
"babel-loader": "^7.1.2",
42-
"babel-preset-es2015": "^6.9.0",
43-
"babel-plugin-external-helpers": "^6.22.0",
44-
"babel-plugin-add-module-exports": "^0.2.1",
45-
"babel-plugin-transform-es2015-modules-umd": "^6.12.0",
46-
"babel-plugin-transform-runtime": "^6.9.0",
47-
"babel-preset-stage-2": "^6.5.0",
48-
"eslint": "^2.10.2",
49-
"eslint-friendly-formatter": "^2.0.7",
50-
"eslint-loader": "^1.3.0",
51-
"eslint-plugin-html": "^1.3.0",
52-
"eslint-config-standard": "^5.1.0",
53-
"eslint-plugin-promise": "^1.0.8",
54-
"eslint-plugin-standard": "^1.3.2",
55-
"webpack": "^3.4.1",
56-
"webpack-dev-middleware": "^1.12.0",
57-
"webpack-hot-middleware": "^2.18.2",
58-
"webpack-merge": "^4.1.0",
59-
"html-webpack-plugin": "^2.28.0",
60-
"friendly-errors-webpack-plugin": "^1.1.3",
61-
"stylus": "^0.54.5",
62-
"stylus-loader": "^2.1.1",
63-
"opn": "^4.0.2",
64-
"eventsource-polyfill": "^0.9.6",
65-
"express": "^4.14.1",
66-
"rollup": "^0.43.0",
67-
"rollup-plugin-babel": "^2.7.1",
68-
"css-loader": "^0.28.0",
69-
"postcss-loader": "^2.0.5",
70-
"style-loader": "^0.13.1",
71-
"vue-loader": "^11.3.4",
72-
"vue-style-loader": "^2.0.5",
73-
"vue-template-compiler": "^2.4.2",
74-
"vue": "^2.4.2",
75-
"vue-router": "^2.7.0",
76-
"vue-i18n": "^7.2.0",
77-
"autoprefixer": "^7.1.1",
78-
"uglify-js": "^3.0.27",
79-
"extract-text-webpack-plugin": "^3.0.0",
80-
"optimize-css-assets-webpack-plugin": "^1.3.0",
81-
"copy-webpack-plugin": "^4.0.1",
82-
"chalk": "^1.1.3",
83-
"ora": "^1.2.0",
84-
"rimraf": "^2.6.0",
85-
"url-loader": "^0.5.9",
86-
"file-loader": "^0.11.1",
87-
"vconsole": "^2.5.2",
88-
"cross-env": "^5.0.5",
89-
"karma": "^1.7.0",
90-
"karma-coverage": "^1.1.1",
91-
"karma-mocha": "^1.3.0",
92-
"karma-phantomjs-launcher": "^1.0.4",
93-
"karma-sinon-chai": "^1.3.1",
94-
"karma-sourcemap-loader": "^0.3.7",
95-
"karma-spec-reporter": "0.0.31",
96-
"karma-webpack": "^2.0.4",
97-
"mocha": "^3.5.0",
98-
"chai": "^3.5.0",
99-
"sinon": "^2.1.0",
100-
"sinon-chai": "^2.13.0",
101-
"babel-plugin-istanbul": "^4.1.4",
102-
"codecov": "^2.2.0"
103-
}
104-
}
2+
"name": "better-scroll",
3+
"version": "1.3.1",
4+
"description": "inspired by iscroll, and it has a better scroll perfermance",
5+
"author": {
6+
"name": "huangyi",
7+
"email": "[email protected]"
8+
},
9+
"types": "./types/index.d.ts",
10+
"main": "dist/bscroll.js",
11+
"scripts": {
12+
"dev": "node build/dev-server.js",
13+
"build": "node build/build.js",
14+
"doc": "cd doc && gitbook install && gitbook serve",
15+
"build:demo": "node build/build-demo",
16+
"build:doc": "sh build/doc.sh",
17+
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
18+
"test": "npm run unit && npm run codecov",
19+
"codecov": "codecov"
20+
},
21+
"bugs": {
22+
"url": "https://github.com/ustbhuangyi/better-scroll/issues"
23+
},
24+
"homepage": "https://github.com/ustbhuangyi/better-scroll",
25+
"keywords": [
26+
"scroll",
27+
"iscroll",
28+
"javascript",
29+
"ios"
30+
],
31+
"licenses": "MIT",
32+
"repository": {
33+
"type": "git",
34+
"url": "[email protected]:ustbhuangyi/better-scroll.git"
35+
},
36+
"dependencies": {
37+
"babel-runtime": "^6.0.0"
38+
},
39+
"devDependencies": {
40+
"babel-core": "^6.9.1",
41+
"babel-eslint": "^6.1.2",
42+
"babel-loader": "^7.1.2",
43+
"babel-preset-es2015": "^6.9.0",
44+
"babel-plugin-external-helpers": "^6.22.0",
45+
"babel-plugin-add-module-exports": "^0.2.1",
46+
"babel-plugin-transform-es2015-modules-umd": "^6.12.0",
47+
"babel-plugin-transform-runtime": "^6.9.0",
48+
"babel-preset-stage-2": "^6.5.0",
49+
"eslint": "^2.10.2",
50+
"eslint-friendly-formatter": "^2.0.7",
51+
"eslint-loader": "^1.3.0",
52+
"eslint-plugin-html": "^1.3.0",
53+
"eslint-config-standard": "^5.1.0",
54+
"eslint-plugin-promise": "^1.0.8",
55+
"eslint-plugin-standard": "^1.3.2",
56+
"webpack": "^3.4.1",
57+
"webpack-dev-middleware": "^1.12.0",
58+
"webpack-hot-middleware": "^2.18.2",
59+
"webpack-merge": "^4.1.0",
60+
"html-webpack-plugin": "^2.28.0",
61+
"friendly-errors-webpack-plugin": "^1.1.3",
62+
"stylus": "^0.54.5",
63+
"stylus-loader": "^2.1.1",
64+
"opn": "^4.0.2",
65+
"eventsource-polyfill": "^0.9.6",
66+
"express": "^4.14.1",
67+
"rollup": "^0.43.0",
68+
"rollup-plugin-babel": "^2.7.1",
69+
"css-loader": "^0.28.0",
70+
"postcss-loader": "^2.0.5",
71+
"style-loader": "^0.13.1",
72+
"vue-loader": "^11.3.4",
73+
"vue-style-loader": "^2.0.5",
74+
"vue-template-compiler": "^2.4.2",
75+
"vue": "^2.4.2",
76+
"vue-router": "^2.7.0",
77+
"vue-i18n": "^7.2.0",
78+
"autoprefixer": "^7.1.1",
79+
"uglify-js": "^3.0.27",
80+
"extract-text-webpack-plugin": "^3.0.0",
81+
"optimize-css-assets-webpack-plugin": "^1.3.0",
82+
"copy-webpack-plugin": "^4.0.1",
83+
"chalk": "^1.1.3",
84+
"ora": "^1.2.0",
85+
"rimraf": "^2.6.0",
86+
"url-loader": "^0.5.9",
87+
"file-loader": "^0.11.1",
88+
"vconsole": "^2.5.2",
89+
"cross-env": "^5.0.5",
90+
"karma": "^1.7.0",
91+
"karma-coverage": "^1.1.1",
92+
"karma-mocha": "^1.3.0",
93+
"karma-phantomjs-launcher": "^1.0.4",
94+
"karma-sinon-chai": "^1.3.1",
95+
"karma-sourcemap-loader": "^0.3.7",
96+
"karma-spec-reporter": "0.0.31",
97+
"karma-webpack": "^2.0.4",
98+
"mocha": "^3.5.0",
99+
"chai": "^3.5.0",
100+
"sinon": "^2.1.0",
101+
"sinon-chai": "^2.13.0",
102+
"babel-plugin-istanbul": "^4.1.4",
103+
"codecov": "^2.2.0"
104+
}
105+
}

types/index.d.ts

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
declare namespace BScroll {
2+
interface WheelOption {
3+
selectedIndex: number;
4+
rotate: number;
5+
adjustTime: number;
6+
}
7+
8+
interface SlideOption {
9+
loop: boolean;
10+
el: Element;
11+
threshold: number;
12+
stepX: number;
13+
stepY: number;
14+
listenFlick: boolean;
15+
}
16+
17+
interface ScrollBarOption {
18+
fade: boolean;
19+
}
20+
21+
interface PullDownOption {
22+
threshold: number;
23+
stop: number;
24+
}
25+
26+
interface PullUpOption {
27+
threshold: number;
28+
}
29+
30+
interface BsOption {
31+
startX: number;
32+
startY: number;
33+
scrollX: boolean;
34+
scrollY: boolean;
35+
freeScroll: boolean;
36+
directionLockThreshold: number;
37+
eventPassthrough: string | boolean;
38+
click: boolean;
39+
tap: boolean;
40+
bounce: boolean;
41+
bounceTime: number;
42+
momentum: boolean;
43+
momentumLimitTime: number;
44+
momentumLimitDistance: number;
45+
swipeTime: number;
46+
swipeBounceTime: number;
47+
deceleration: number;
48+
flickLimitTime: number;
49+
flickLimitDistance: number;
50+
resizePolling: number;
51+
probeType: number;
52+
preventDefault: boolean;
53+
preventDefaultException: object;
54+
HWCompositing: boolean;
55+
useTransition: boolean;
56+
useTransform: boolean;
57+
bindToWrapper: boolean;
58+
disableMouse: boolean;
59+
disableTouch: boolean;
60+
/**
61+
* for picker
62+
* wheel: {
63+
* selectedIndex: 0,
64+
* rotate: 25,
65+
* adjustTime: 400
66+
* }
67+
*/
68+
wheel: Partial<WheelOption> | boolean;
69+
/**
70+
* for slide
71+
* snap: {
72+
* loop: boolean,
73+
* el: domEl,
74+
* threshold: 0.1,
75+
* stepX: 100,
76+
* stepY: 100,
77+
* listenFlick: true
78+
* }
79+
*/
80+
snap: Partial<SlideOption> | boolean;
81+
/**
82+
* for scrollbar
83+
* scrollbar: {
84+
* fade: true
85+
* }
86+
*/
87+
scrollbar: Partial<ScrollBarOption> | boolean;
88+
/**
89+
* for pull down and refresh
90+
* pullDownRefresh: {
91+
* threshold: 50,
92+
* stop: 20
93+
* }
94+
*/
95+
pullDownRefresh: Partial<PullDownOption> | boolean;
96+
/**
97+
* for pull up and load
98+
* pullUpLoad: {
99+
* threshold: 50
100+
* }
101+
*/
102+
pullUpLoad: Partial<PullUpOption> | boolean;
103+
}
104+
}
105+
106+
interface BScrollStatic {
107+
new(element: Element | string, options?: Partial<BScroll.BsOption>): BScrollStatic;
108+
// 重新计算 better-scroll,当 DOM 结构发生变化的时候务必要调用确保滚动的效果正常
109+
x: number;
110+
y: number;
111+
112+
refresh(): void;
113+
// 启用 better-scroll, 默认 开启
114+
enable(): void;
115+
// 禁用 better-scroll,DOM 事件(如 touchstart、touchmove、touchend)的回调函数不再响应
116+
disable(): void;
117+
// 相对于当前位置偏移滚动 x,y 的距离
118+
scrollBy(x: number, y: number, time?: number, easing?: object): void;
119+
// 滚动到指定的位置
120+
scrollTo(x: number, y: number, time?: number, easing?: object): void;
121+
// 滚动到指定的目标元素
122+
scrollToElement(el: HTMLElement | string, time?: number, offsetX?: number | boolean, offsetY?: number | boolean, easing?: object): void;
123+
// 立即停止当前运行的滚动动画
124+
stop(): void;
125+
// 销毁 better-scroll,解绑事件
126+
destroy(): void;
127+
128+
// 当我们做 slide 组件的时候,slide 通常会分成多个页面。调用此方法可以滚动到指定的页面。
129+
goToPage(x: number, y: number, time?: number, easing?: object): void;
130+
// 滚动到下一个页面
131+
next(time: number, easing: object): void;
132+
// 滚动到上一个页面
133+
prev(time: number, easing: object): void;
134+
// 获取当前页面的信息
135+
getCurrentPage(): void
136+
// 当我们做 picker 组件的时候,调用该方法可以滚动到索引对应的位置
137+
wheelTo(index: number): void;
138+
// 获取当前选中的索引值
139+
getSelectedIndex(): void;
140+
// 当下拉刷新数据加载完毕后,需要调用此方法告诉 better-scroll 数据已加载
141+
finishPullDown(): void;
142+
// 当上拉加载数据加载完毕后,需要调用此方法告诉 better-scroll 数据已加载
143+
finishPullUp(): void;
144+
145+
// 监听事件
146+
on(type: string, fn: (evt?: any) => void): void;
147+
off(type: string, fn?: (evt?: any) => void): void;
148+
}
149+
150+
declare const BScroll: BScrollStatic;
151+
152+
declare module 'better-scroll' {
153+
export = BScroll;
154+
}

0 commit comments

Comments
 (0)