From 83f67fa71ca583cc60c8c0ffaa47f100ffdee8a9 Mon Sep 17 00:00:00 2001 From: Christian Stornowski Date: Tue, 10 Jul 2018 00:03:52 +0200 Subject: [PATCH] Added types for vue2-datepicker component (#27108) * Created types for vue2-datepicker * Added missing new line * Enabled strictNullChecks --- types/vue2-datepicker/index.d.ts | 57 +++++++++++++++++++ types/vue2-datepicker/package.json | 6 ++ types/vue2-datepicker/tsconfig.json | 23 ++++++++ types/vue2-datepicker/tslint.json | 1 + .../vue2-datepicker/vue2-datepicker-tests.ts | 23 ++++++++ 5 files changed, 110 insertions(+) create mode 100644 types/vue2-datepicker/index.d.ts create mode 100644 types/vue2-datepicker/package.json create mode 100644 types/vue2-datepicker/tsconfig.json create mode 100644 types/vue2-datepicker/tslint.json create mode 100644 types/vue2-datepicker/vue2-datepicker-tests.ts diff --git a/types/vue2-datepicker/index.d.ts b/types/vue2-datepicker/index.d.ts new file mode 100644 index 0000000000..6dd67352fa --- /dev/null +++ b/types/vue2-datepicker/index.d.ts @@ -0,0 +1,57 @@ +// Type definitions for vue2-datepicker 2.0 +// Project: https://github.com/mengxiong10/vue2-datepicker +// Definitions by: ChristianStornowski +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { Component } from "vue/types/options"; + +declare namespace Datepicker { + interface Shortcuts { + text: string; + start: Date; + end: Date; + } + + interface TimePickerOptions { + start: string; + step: string; + end: string; + } + + interface Lang { + days: string[]; + months: string[]; + pickers: string[]; + placeholder: { + date: string; + dateRange: string; + }; + } +} + +declare const Datepicker: Component Date[]); + shortcuts?: boolean | Datepicker.Shortcuts[] + timePickerOptions?: Datepicker.TimePickerOptions[] | (() => Datepicker.TimePickerOptions[]); + minuteStep?: number; + firstDayOfWeek?: number; + inputClass?: string; + inputName?: string; + confirmText?: string; + rangeSeparator?: string; +}>; + +export default Datepicker; diff --git a/types/vue2-datepicker/package.json b/types/vue2-datepicker/package.json new file mode 100644 index 0000000000..faefc1b2f7 --- /dev/null +++ b/types/vue2-datepicker/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "dependencies": { + "vue": ">=2.0.0" + } +} diff --git a/types/vue2-datepicker/tsconfig.json b/types/vue2-datepicker/tsconfig.json new file mode 100644 index 0000000000..56e16426be --- /dev/null +++ b/types/vue2-datepicker/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "vue2-datepicker-tests.ts" + ] +} diff --git a/types/vue2-datepicker/tslint.json b/types/vue2-datepicker/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/vue2-datepicker/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/vue2-datepicker/vue2-datepicker-tests.ts b/types/vue2-datepicker/vue2-datepicker-tests.ts new file mode 100644 index 0000000000..5b1546f8a2 --- /dev/null +++ b/types/vue2-datepicker/vue2-datepicker-tests.ts @@ -0,0 +1,23 @@ +import Vue from 'vue'; +import DatePicker from "vue2-datepicker"; + +new Vue({ + el: '#app', + components: { + DatePicker + }, + template: ` + + + + `, + data() { + return { dateOfBirth: new Date() }; + } +});