diff --git a/types/vue2-datepicker/index.d.ts b/types/vue2-datepicker/index.d.ts index 6dd67352fa..493c1d989d 100644 --- a/types/vue2-datepicker/index.d.ts +++ b/types/vue2-datepicker/index.d.ts @@ -1,16 +1,15 @@ -// Type definitions for vue2-datepicker 2.0 +// Type definitions for vue2-datepicker 2.12 // Project: https://github.com/mengxiong10/vue2-datepicker // Definitions by: ChristianStornowski // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 +// TypeScript Version: 3.2 import { Component } from "vue/types/options"; declare namespace Datepicker { interface Shortcuts { text: string; - start: Date; - end: Date; + onClick: () => any; } interface TimePickerOptions { @@ -28,12 +27,25 @@ declare namespace Datepicker { dateRange: string; }; } + + interface ValueType { + date: Date; + timestamp: number; + format: string; + } + + interface TimeSelectOptions { + hours: number[]; + minutes: number[]; + seconds: number[]; + } } declare const Datepicker: Component Date[]); shortcuts?: boolean | Datepicker.Shortcuts[] timePickerOptions?: Datepicker.TimePickerOptions[] | (() => Datepicker.TimePickerOptions[]); + timeSelectOptions?: Datepicker.TimeSelectOptions; minuteStep?: number; firstDayOfWeek?: number; inputClass?: string; - inputName?: string; + inputAttr?: string; confirmText?: string; rangeSeparator?: string; + dateFormat?: string; }>; export default Datepicker; diff --git a/types/vue2-datepicker/package.json b/types/vue2-datepicker/package.json index faefc1b2f7..c9b2a71233 100644 --- a/types/vue2-datepicker/package.json +++ b/types/vue2-datepicker/package.json @@ -1,6 +1,6 @@ { "private": true, "dependencies": { - "vue": ">=2.0.0" + "vue": ">=2.6.10" } } diff --git a/types/vue2-datepicker/tsconfig.json b/types/vue2-datepicker/tsconfig.json index d6c4ca0d7c..1c673bf7a6 100644 --- a/types/vue2-datepicker/tsconfig.json +++ b/types/vue2-datepicker/tsconfig.json @@ -15,10 +15,13 @@ ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "experimentalDecorators": true }, "files": [ "index.d.ts", "vue2-datepicker-tests.ts" - ] + ], + "baseUrl": "types", + "typeRoots": ["types"] } diff --git a/types/vue2-datepicker/vue2-datepicker-tests.ts b/types/vue2-datepicker/vue2-datepicker-tests.ts index 5b1546f8a2..ce86ac8903 100644 --- a/types/vue2-datepicker/vue2-datepicker-tests.ts +++ b/types/vue2-datepicker/vue2-datepicker-tests.ts @@ -1,5 +1,13 @@ -import Vue from 'vue'; -import DatePicker from "vue2-datepicker"; +import Vue, { ComponentOptions } from 'vue'; +import DatePicker from 'vue2-datepicker'; + +// excerpt from vue-class-component/src/declarations.ts +type VueClass = { + new(...args: any[]): V & Vue; +} & typeof Vue; + +// excerpt from vue-class-component/src/index.ts +declare function Component(options: ComponentOptions & ThisType): >(target: VC) => VC; new Vue({ el: '#app', @@ -18,6 +26,26 @@ new Vue({ `, data() { - return { dateOfBirth: new Date() }; + return {dateOfBirth: new Date()}; } }); + +@Component({ + components: { + DatePicker + }, + template: ` + + + + ` +}) +class App extends Vue { + dateOfBirth = new Date(); +}