diff --git a/types/amap-js-api-arrival-range/amap-js-api-arrival-range-tests.ts b/types/amap-js-api-arrival-range/amap-js-api-arrival-range-tests.ts new file mode 100644 index 0000000000..2b8be64dac --- /dev/null +++ b/types/amap-js-api-arrival-range/amap-js-api-arrival-range-tests.ts @@ -0,0 +1,42 @@ +declare const lnglat: AMap.LngLat; +declare const lnglatTuple: [number, number]; + +// $ExpectType ArrivalRange +const arrivalRange = new AMap.ArrivalRange(); + +// $ExpectType void +arrivalRange.search(lnglat, 10, (status, result) => { + const tempStatus: 'complete' | 'error' | 'no_data' = status; + if (typeof result !== 'string') { + // $ExpectType SearchResult + result; + // $ExpectType string + result.bounds[0][0][0][0]; + // $ExpectType boolean[] | undefined + result.inRange; + // $ExpectType string + result.info; + // $ExpectType string + result.infocode; + } else { + // $ExpectType string + result; + } +}); +// $ExpectType void +arrivalRange.search(lnglatTuple, 10, () => { }); +// $ExpectType void +arrivalRange.search(lnglatTuple, 10, () => { }, {}); +// $ExpectType void +arrivalRange.search(lnglat, 10, () => { }, { + policy: 'BUS', + resultType: 'polygon', + destination: lnglat +}); + +arrivalRange.on('error', (event: AMap.ArrivalRange.EventMap['error']) => { + // $ExpectType string + event.info; + // $ExpectType "error" + event.type; +}); diff --git a/types/amap-js-api-arrival-range/index.d.ts b/types/amap-js-api-arrival-range/index.d.ts new file mode 100644 index 0000000000..95deab41fa --- /dev/null +++ b/types/amap-js-api-arrival-range/index.d.ts @@ -0,0 +1,66 @@ +// Type definitions for non-npm package amap-js-api-arrival-range 1.4 +// Project: https://lbs.amap.com/api/javascript-api/reference/route-search#m_AMap.ArrivalRange +// Definitions by: breeze9527 +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +/// + +declare namespace AMap { + namespace ArrivalRange { + interface EventMap { + error: Event<'error', { info: string; }>; + } + interface SearchOptions { + /** + * 公交出行策略,可选为:地铁:SUBWAY, 公交:BUS,多策略使用逗号分隔 + */ + policy?: string; // 'BUS' | 'SUBWAY' | 'BUS,SUBWAY' | 'SUBWAY,BUS'; + /** + * 结果返回样式:polygon:返回多边形边界值,coverage:判断设定的终点坐标是否在到达圈范围内 + */ + resultType?: 'polygon' | 'coverage'; // useless + /** + * 选择一个想到达的目的地坐标,最多支持5个目的地坐标 + */ + destination?: LocationValue | LocationValue[]; + } + interface SearchResult { + /** + * 查询状态说明 + */ + info: string; + /** + * 到达圈边界坐标点 + */ + bounds: string[][][][]; + /** + * 提供的终点坐标是否在到达圈内 + */ + inRange?: boolean[]; + + // internal + infocode: string; + } + type SearchStatus = 'complete' | 'error' | 'no_data'; + } + + /** + * 公交到达圈展示 + */ + class ArrivalRange extends EventEmitter { + /** + * 计算某个时间段内用户通过公交出行可到达的距离范围 + * @param origin 起始点 + * @param time 时间 + * @param callback 回调 + * @param opts 选项 + */ + search( + origin: LocationValue, + time: number, + callback: (status: ArrivalRange.SearchStatus, result: string | ArrivalRange.SearchResult) => void, + opts?: ArrivalRange.SearchOptions + ): void; + } +} diff --git a/types/amap-js-api-arrival-range/tsconfig.json b/types/amap-js-api-arrival-range/tsconfig.json new file mode 100644 index 0000000000..c916529a25 --- /dev/null +++ b/types/amap-js-api-arrival-range/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noEmit": true, + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "amap-js-api-arrival-range-tests.ts" + ] +} diff --git a/types/amap-js-api-arrival-range/tslint.json b/types/amap-js-api-arrival-range/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/amap-js-api-arrival-range/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}