]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
types: remove intersection of props interface on `this`
authorEvan You <yyx990803@gmail.com>
Fri, 1 Mar 2019 19:06:19 +0000 (14:06 -0500)
committerEvan You <yyx990803@gmail.com>
Fri, 1 Mar 2019 19:06:19 +0000 (14:06 -0500)
packages/runtime-core/src/component.ts

index 0698dd2a6fb5c8def0aea8e3d81623207cca08e7..8e14e57a238ec64d32acdf669d3d4d28a8103a7c 100644 (file)
@@ -72,7 +72,7 @@ export interface LifecycleMethods {
 
 export interface ComponentClass extends ComponentClassOptions {
   options?: ComponentOptions
-  new <P = {}, D = {}>(): Component<P, D> & D & P
+  new <P = {}, D = {}>(): Component<P, D>
 }
 
 export interface FunctionalComponent<P = {}> {
@@ -84,9 +84,9 @@ export interface FunctionalComponent<P = {}> {
 export type ComponentType = ComponentClass | FunctionalComponent
 
 // Internal type that represents a mounted instance.
-// It extends InternalComponent with mounted instance properties.
+// It extends ComponentImplementation with mounted instance properties.
 export interface ComponentInstance<P = {}, D = {}>
-  extends InternalComponent,
+  extends ComponentImplementation,
     Partial<APIMethods<P, D>>,
     Partial<LifecycleMethods> {
   constructor: ComponentClass
@@ -107,7 +107,7 @@ export interface ComponentInstance<P = {}, D = {}>
 }
 
 // actual implementation of the component
-class InternalComponent implements PublicInstanceMethods {
+class ComponentImplementation implements PublicInstanceMethods {
   get $el(): any {
     const el = this.$vnode && this.$vnode.el
     return typeof el === 'function' ? (el as any)() : el
@@ -125,6 +125,7 @@ class InternalComponent implements PublicInstanceMethods {
   $options: ComponentOptions | null = null
   $refs: Record<string, ComponentInstance | RenderNode> = {}
   $proxy: any = null
+  $self: any
 
   _rawData: Data | null = null
   _computedGetters: Record<string, ComputedGetter> | null = null
@@ -190,7 +191,7 @@ class InternalComponent implements PublicInstanceMethods {
 
 // legacy event emitter interface exposed on component instances
 if (__COMPAT__) {
-  const p = InternalComponent.prototype as any
+  const p = ComponentImplementation.prototype as any
   ;['on', 'off', 'once'].forEach(key => {
     p['$' + key] = function(...args: any[]) {
       this._eventEmitter[key](...args)
@@ -206,5 +207,5 @@ if (__COMPAT__) {
 }
 
 // the exported Component has the implementation details of the actual
-// InternalComponent class but with proper type inference of ComponentClass.
-export const Component = InternalComponent as ComponentClass
+// ComponentImplementation class but with proper type inference of ComponentClass.
+export const Component = ComponentImplementation as ComponentClass