From 312aef29c2a5c02d97267b00abda1b38f7489c53 Mon Sep 17 00:00:00 2001 From: Herrington Darkholme Date: Mon, 27 Nov 2017 17:29:37 +0800 Subject: [PATCH] fix(types): bump ts version and fix typing bugs --- package-lock.json | 62 +++++++++++++++++++------------------- package.json | 2 +- types/options.d.ts | 3 +- types/test/options-test.ts | 7 +++-- types/vue.d.ts | 8 ++--- 5 files changed, 42 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7fa4f3d70f5..bb9763d321a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,16 +42,6 @@ "@types/uglify-js": "2.6.29" } }, - "JSONStream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", - "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, "abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", @@ -2129,8 +2119,8 @@ "integrity": "sha512-8od6g684Fhi5Vpp4ABRv/RBsW1AY6wSHbJHEK6FGTv+8jvAAnlABniZu/FVmX9TcirkHepaEsa1QGkRvbg0CKw==", "dev": true, "requires": { - "JSONStream": "1.3.1", "is-text-path": "1.0.1", + "JSONStream": "1.3.1", "lodash": "4.17.4", "meow": "3.7.0", "split2": "2.1.1", @@ -4310,22 +4300,22 @@ } } }, - "string-width": { - "version": "1.0.2", + "string_decoder": { + "version": "1.0.1", "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "safe-buffer": "5.0.1" } }, - "string_decoder": { - "version": "1.0.1", + "string-width": { + "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "safe-buffer": "5.0.1" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "stringstream": { @@ -5531,6 +5521,16 @@ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", "dev": true }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -8387,6 +8387,15 @@ "xtend": "4.0.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -8398,15 +8407,6 @@ "strip-ansi": "3.0.1" } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -8726,9 +8726,9 @@ "dev": true }, "typescript": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.2.tgz", - "integrity": "sha1-A4qV99m7tCCxvzW6MdTFwd0//jQ=", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.6.1.tgz", + "integrity": "sha1-7znN6ierrAtQAkLWcmq5DgyEZjE=", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index 3fa5d5adc7e..5fd5bb9a783 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,7 @@ "selenium-server": "^2.53.1", "serialize-javascript": "^1.3.0", "shelljs": "^0.7.8", - "typescript": "^2.5.2", + "typescript": "^2.6.1", "uglify-js": "^3.0.15", "webpack": "^2.6.1", "weex-js-runtime": "^0.23.0", diff --git a/types/options.d.ts b/types/options.d.ts index c4d822f69ef..4846b11cd0f 100644 --- a/types/options.d.ts +++ b/types/options.d.ts @@ -9,8 +9,7 @@ type Constructor = { export type Component, Methods=DefaultMethods, Computed=DefaultComputed, Props=DefaultProps> = | typeof Vue | FunctionalComponentOptions - | ThisTypedComponentOptionsWithArrayProps - | ThisTypedComponentOptionsWithRecordProps; + | ComponentOptions interface EsModuleComponent { default: Component diff --git a/types/test/options-test.ts b/types/test/options-test.ts index e7cd8bacdab..e1edff3f5ad 100644 --- a/types/test/options-test.ts +++ b/types/test/options-test.ts @@ -196,7 +196,7 @@ Vue.component('component', { bind() {}, inserted() {}, update() {}, - componentMounted() {}, + componentUpdated() {}, unbind() {} }, b(el, binding, vnode, oldVnode) { @@ -310,7 +310,10 @@ Vue.component("async-component", ((resolve, reject) => { resolve(Vue.component("component")); }, 0); return new Promise((resolve) => { - resolve({ functional: true }); + resolve({ + functional: true, + render(h: CreateElement) { return h('div') } + }); }) })); diff --git a/types/vue.d.ts b/types/vue.d.ts index 2b025150bc7..cd3204af57b 100644 --- a/types/vue.d.ts +++ b/types/vue.d.ts @@ -16,8 +16,8 @@ import { VNode, VNodeData, VNodeChildren, ScopedSlot } from "./vnode"; import { PluginFunction, PluginObject } from "./plugin"; export interface CreateElement { - (tag?: string | Component | AsyncComponent, children?: VNodeChildren): VNode; - (tag?: string | Component | AsyncComponent, data?: VNodeData, children?: VNodeChildren): VNode; + (tag?: string | Component | AsyncComponent | (() => Component), children?: VNodeChildren): VNode; + (tag?: string | Component | AsyncComponent | (() => Component), data?: VNodeData, children?: VNodeChildren): VNode; } export interface Vue { @@ -72,7 +72,7 @@ export interface VueConstructor { extend(definition: FunctionalComponentOptions, PropNames[]>): ExtendedVue>; extend(definition: FunctionalComponentOptions>): ExtendedVue; - extend(options?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; + extend(options?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; extend(options?: ThisTypedComponentOptionsWithRecordProps): ExtendedVue; extend(options?: ComponentOptions): ExtendedVue; @@ -94,7 +94,7 @@ export interface VueConstructor { component(id: string, definition: AsyncComponent): ExtendedVue; component(id: string, definition: FunctionalComponentOptions, PropNames[]>): ExtendedVue>; component(id: string, definition: FunctionalComponentOptions>): ExtendedVue; - component(id: string, definition?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; + component(id: string, definition?: ThisTypedComponentOptionsWithArrayProps): ExtendedVue>; component(id: string, definition?: ThisTypedComponentOptionsWithRecordProps): ExtendedVue; component(id: string, definition?: ComponentOptions): ExtendedVue;