Browse Source

fix(types): fix global namespace declaration for UMD bundle (#9912)

dev
katashin 6 years ago
committed by Evan You
parent
commit
ab50e8e1da
  1. 3
      types/index.d.ts
  2. 14
      types/test/tsconfig.json
  3. 7
      types/test/umd-test.ts
  4. 48
      types/umd.d.ts

3
types/index.d.ts

@ -1,9 +1,8 @@
import { Vue } from "./vue"; import { Vue } from "./vue";
import "./umd";
export default Vue; export default Vue;
export as namespace Vue;
export { export {
CreateElement, CreateElement,
VueConstructor VueConstructor

14
types/test/tsconfig.json

@ -14,17 +14,9 @@
"vue": ["../index.d.ts"] "vue": ["../index.d.ts"]
} }
}, },
"files": [ "include": [
"../index.d.ts", "../*.d.ts",
"../options.d.ts", "*.ts"
"../plugin.d.ts",
"../vnode.d.ts",
"../vue.d.ts",
"options-test.ts",
"plugin-test.ts",
"vue-test.ts",
"augmentation-test.ts",
"ssr-test.ts"
], ],
"compileOnSave": false "compileOnSave": false
} }

7
types/test/umd-test.ts

@ -0,0 +1,7 @@
const vm = new Vue({
template: "<div>hi</div>"
});
const options: Vue.ComponentOptions<Vue> = {
template: "<div>test</div>"
};

48
types/umd.d.ts

@ -0,0 +1,48 @@
import * as V from "./index";
import {
DefaultData,
DefaultProps,
DefaultMethods,
DefaultComputed,
PropsDefinition
} from "./options";
// Expose some types for backword compatibility...
declare namespace Vue {
// vue.d.ts
export type CreateElement = V.CreateElement;
export type VueConstructor<V extends Vue = Vue> = V.VueConstructor<V>;
// options.d.ts
export type Component<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> = V.Component<Data, Methods, Computed, Props>;
export type AsyncComponent<Data=DefaultData<never>, Methods=DefaultMethods<never>, Computed=DefaultComputed, Props=DefaultProps> = V.AsyncComponent<Data, Methods, Computed, Props>;
export type ComponentOptions<V extends Vue, Data=DefaultData<V>, Methods=DefaultMethods<V>, Computed=DefaultComputed, PropsDef=PropsDefinition<DefaultProps>, Props=DefaultProps> = V.ComponentOptions<V, Data, Methods, Computed, PropsDef, Props>;
export type FunctionalComponentOptions<Props = DefaultProps, PropDefs = PropsDefinition<Props>> = V.FunctionalComponentOptions<Props, PropDefs>;
export type RenderContext<Props=DefaultProps> = V.RenderContext<Props>;
export type PropType<T> = V.PropType<T>;
export type PropOptions<T=any> = V.PropOptions<T>;
export type ComputedOptions<T> = V.ComputedOptions<T>;
export type WatchHandler<T> = V.WatchHandler<T>;
export type WatchOptions = V.WatchOptions;
export type WatchOptionsWithHandler<T> = V.WatchOptionsWithHandler<T>;
export type DirectiveFunction = V.DirectiveFunction;
export type DirectiveOptions = V.DirectiveOptions;
// plugin.d.ts
export type PluginFunction<T> = V.PluginFunction<T>;
export type PluginObject<T> = V.PluginObject<T>;
// vnode.d.ts
export type VNodeChildren = V.VNodeChildren;
export type VNodeChildrenArrayContents = V.VNodeChildrenArrayContents;
export type VNode = V.VNode;
export type VNodeComponentOptions = V.VNodeComponentOptions;
export type VNodeData = V.VNodeData;
export type VNodeDirective = V.VNodeDirective;
}
declare class Vue extends V.default {}
export = Vue;
export as namespace Vue;
Loading…
Cancel
Save