From b2c017037ded9c8a7199dd9dfc62cf02e333324a Mon Sep 17 00:00:00 2001 From: breeze9527 Date: Thu, 3 Oct 2019 04:25:16 +0800 Subject: [PATCH] New definition for non npm package amap-js-api-scale (#38760) --- .../amap-js-api-scale-tests.ts | 38 +++++++++++ types/amap-js-api-scale/index.d.ts | 63 +++++++++++++++++++ types/amap-js-api-scale/tsconfig.json | 24 +++++++ types/amap-js-api-scale/tslint.json | 3 + 4 files changed, 128 insertions(+) create mode 100644 types/amap-js-api-scale/amap-js-api-scale-tests.ts create mode 100644 types/amap-js-api-scale/index.d.ts create mode 100644 types/amap-js-api-scale/tsconfig.json create mode 100644 types/amap-js-api-scale/tslint.json diff --git a/types/amap-js-api-scale/amap-js-api-scale-tests.ts b/types/amap-js-api-scale/amap-js-api-scale-tests.ts new file mode 100644 index 0000000000..1835e4fe4c --- /dev/null +++ b/types/amap-js-api-scale/amap-js-api-scale-tests.ts @@ -0,0 +1,38 @@ +declare const map: AMap.Map; +declare const pixel: AMap.Pixel; + +// $ExpectType Scale +new AMap.Scale(); +// $ExpectType Scale +new AMap.Scale({}); +// $ExpectType Scale +const scale = new AMap.Scale({ + position: 'LT', + visible: true, + offset: pixel +}); + +// $ExpectType Pixel +scale.offset; + +// $ExpectType boolean +scale.visible; + +// $ExpectType Position +scale.position; + +// $ExpectType void +scale.show(); + +// $ExpectType void +scale.hide(); + +scale.on('show', (event: AMap.Scale.EventMap['show']) => { + // $ExpectType "show" + event.type; +}); + +scale.on('hide', (event: AMap.Scale.EventMap['hide']) => { + // $ExpectType "hide" + event.type; +}); diff --git a/types/amap-js-api-scale/index.d.ts b/types/amap-js-api-scale/index.d.ts new file mode 100644 index 0000000000..0755ea39b6 --- /dev/null +++ b/types/amap-js-api-scale/index.d.ts @@ -0,0 +1,63 @@ +// Type definitions for non-npm package amap-js-api-scale 1.4 +// Project: https://lbs.amap.com/api/javascript-api/reference/map-control#AMap.Scale +// Definitions by: breeze9527 +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +/// + +declare namespace AMap { + namespace Scale { + interface EventMap { + show: Event<'show'>; + hide: Event<'hide'>; + } + type Position = 'LT' | 'RT' | 'LB' | 'RB'; + interface Options { + /** + * 控件停靠位置 + * LT:左上角; + * RT:右上角; + * LB:左下角; + * RB:右下角; + * 默认位置:LB + */ + position?: Position; + /** + * 是否可见 + */ + visible?: boolean; + /** + * 相对于地图容器左上角的偏移量 + */ + offset?: Pixel; + } + } + + /** + * 比例尺插件 + */ + class Scale extends EventEmitter { + constructor(options?: Scale.Options); + /** + * 控件停靠位置 + */ + position: Position; + /** + * 相对于地图容器左上角的偏移量 + */ + offset: Pixel; + /** + * 是否可见 + */ + visible: boolean; + /** + * 显示比例尺 + */ + show(): void; + /** + * 隐藏比例尺 + */ + hide(): void; + } +} diff --git a/types/amap-js-api-scale/tsconfig.json b/types/amap-js-api-scale/tsconfig.json new file mode 100644 index 0000000000..93cad8fdf7 --- /dev/null +++ b/types/amap-js-api-scale/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-scale-tests.ts" + ] +} diff --git a/types/amap-js-api-scale/tslint.json b/types/amap-js-api-scale/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/amap-js-api-scale/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}