From f6da4b13b86327e1d9e9ab781dd091cf5a868879 Mon Sep 17 00:00:00 2001 From: Hraban Luyat Date: Fri, 30 Jan 2015 06:02:33 +0100 Subject: [PATCH] Discern new vs old style components through render By overloading createElement() for the ClassicComponentClass and creating a separate ReactClassicElement type, we can keep track of which calls to render() should create a ClassicComponent versus a new style Component. Useful for keeping the old API, which makes migration easier. --- react/react-0.13.0.d.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/react/react-0.13.0.d.ts b/react/react-0.13.0.d.ts index b5a1d1495..9ee102541 100644 --- a/react/react-0.13.0.d.ts +++ b/react/react-0.13.0.d.ts @@ -17,6 +17,9 @@ declare module React { ref: string; } + interface ReactClassicElement

extends ReactElement

{ + } + interface ReactHTMLElement extends ReactElement {} interface ReactSVGElement extends ReactElement {} @@ -112,8 +115,10 @@ declare module React { interface TopLevelAPI { createClass(spec: ComponentSpec): ClassicComponentClass; + createElement

(type: ClassicComponentClass, props: P, ...children: ReactNode[]): ReactClassicElement

; createElement

(type: ComponentClass | string, props: P, ...children: ReactNode[]): ReactElement

; createFactory

(type: ComponentClass | string): ComponentFactory

; + render(element: ReactClassicElement

, container: Element, callback?: () => any): ClassicComponent; render(element: ReactElement

, container: Element, callback?: () => any): Component; unmountComponentAtNode(container: Element): boolean; renderToString(element: ReactElement): string;