@@ -64,6 +64,18 @@ export interface Vue {
64
64
export type CombinedVueInstance < Instance extends Vue , Data , Methods , Computed , Props > = Data & Methods & Computed & Props & Instance ;
65
65
export type ExtendedVue < Instance extends Vue , Data , Methods , Computed , Props > = VueConstructor < CombinedVueInstance < Instance , Data , Methods , Computed , Props > & Vue > ;
66
66
67
+ export interface VueConfiguration {
68
+ silent :boolean ;
69
+ optionMergeStrategies :any ;
70
+ devtools :boolean ;
71
+ productionTip :boolean ;
72
+ performance :boolean ;
73
+ errorHandler ( err :Error , vm :Vue , info :string ) :void ;
74
+ warnHandler ( msg :string , vm :Vue , trace :string ) :void ;
75
+ ignoredElements :( string | RegExp ) [ ] ;
76
+ keyCodes :{ [ key :string ] :number | number [ ] } ;
77
+ }
78
+
67
79
export interface VueConstructor < V extends Vue = Vue > {
68
80
new < Data = object , Methods = object , Computed = object , PropNames extends string = never > ( options ?:ThisTypedComponentOptionsWithArrayProps < V , Data , Methods , Computed , PropNames > ) :CombinedVueInstance < V , Data , Methods , Computed , Record < PropNames , any > > ;
69
81
// ideally, the return type should just contains Props, not Record<keyof Props, any>. But TS requires Base constructors must all have the same return type.
@@ -106,17 +118,7 @@ export interface VueConstructor<V extends Vue = Vue> {
106
118
staticRenderFns :( ( ) => VNode ) [ ] ;
107
119
} ;
108
120
109
- config :{
110
- silent :boolean ;
111
- optionMergeStrategies :any ;
112
- devtools :boolean ;
113
- productionTip :boolean ;
114
- performance :boolean ;
115
- errorHandler ( err :Error , vm :Vue , info :string ) :void ;
116
- warnHandler ( msg :string , vm :Vue , trace :string ) :void ;
117
- ignoredElements :( string | RegExp ) [ ] ;
118
- keyCodes :{ [ key :string ] :number | number [ ] } ;
119
- }
121
+ config :VueConfiguration ;
120
122
}
121
123
122
124
export const Vue :VueConstructor ;