Skip to content

Commit

Permalink
[react] Add T param to React.DOM* types
Browse files Browse the repository at this point in the history
  • Loading branch information
vsiao committed Mar 14, 2016
1 parent 92cf86a commit 1917a41
Show file tree
Hide file tree
Showing 13 changed files with 154 additions and 165 deletions.
5 changes: 1 addition & 4 deletions fixed-data-table/fixed-data-table-0.4.7.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -387,16 +387,13 @@ declare module FixedDataTable {
}

export class Table extends __React.Component<TableProps, {}> {
render(): __React.DOMElement<any>
}
export class Column extends __React.Component<ColumnProps, {}> {
render(): __React.DOMElement<any>
}
export class ColumnGroup extends __React.Component<ColumnGroupProps, {}> {
render(): __React.DOMElement<any>
}
}

declare module "fixed-data-table" {
export = FixedDataTable;
}
}
4 changes: 0 additions & 4 deletions fixed-data-table/fixed-data-table.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -483,16 +483,12 @@ declare module FixedDataTable {
}

export class Table extends __React.Component<TableProps, {}> {
render(): __React.DOMElement<any>
}
export class Column extends __React.Component<ColumnProps, {}> {
render(): __React.DOMElement<any>
}
export class ColumnGroup extends __React.Component<ColumnGroupProps, {}> {
render(): __React.DOMElement<any>
}
export class Cell extends __React.Component<CellProps, {}> {
render(): __React.DOMElement<any>
}
}

Expand Down
2 changes: 1 addition & 1 deletion jsnox/jsnox-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ var clickHandler: React.MouseEventHandler

// Tests with spec string
function spec_string () {
var result: React.ReactHTMLElement
var result: React.ReactHTMLElement<HTMLElement>

// just spec string
result = $('div')
Expand Down
4 changes: 2 additions & 2 deletions jsnox/jsnox.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ declare module 'jsnox' {
* @param children A single React node (string or ReactElement) or array of nodes.
* Note that unlike with React itself, multiple children must be placed into an array.
*/
<P>(specString: string, children: React.ReactNode): React.DOMElement<P>
<P>(specString: string, children: React.ReactNode): React.DOMElement<P, Element>

/**
* Renders an HTML element from the given spec string, with optional props
Expand All @@ -42,7 +42,7 @@ declare module 'jsnox' {
* @param children A single React node (string or ReactElement) or array of nodes.
* Note that unlike with React itself, multiple children must be placed into an array.
*/
<P>(specString: string, props?: React.HTMLAttributes, children?: React.ReactNode): React.DOMElement<P>
<P>(specString: string, props?: React.HTMLAttributes, children?: React.ReactNode): React.DOMElement<P, Element>


/**
Expand Down
2 changes: 1 addition & 1 deletion react-dnd/react-dnd-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ module Board {
};

render() {
var squares: React.DOMElement<React.HTMLAttributes>[] = [];
var squares: React.ReactHTMLElement<HTMLDivElement>[] = [];
for (let i = 0; i < 64; i++) {
squares.push(this._renderSquare(i));
}
Expand Down
2 changes: 1 addition & 1 deletion react-holder/react-holder.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ declare module "react-holder" {

import React = __React;

interface ReactHolderProp extends React.HTMLProps<ReactHolder> {
interface ReactHolderProp extends React.HTMLAttributes {
width: string | number;
height: string | number;
updateOnResize: boolean;
Expand Down
1 change: 0 additions & 1 deletion react-input-calendar/react-input-calendar.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ declare module reactInputCalendar {
}
interface ReactInputCalendarState { }
export class ReactInputCalendar extends __React.Component<ReactInputCalendarProps, ReactInputCalendarState> {
render(): __React.DOMElement<any>;
}
}
declare var ReactInputCalendar: typeof reactInputCalendar.ReactInputCalendar
Expand Down
1 change: 0 additions & 1 deletion react-swf/react-swf.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ declare module rswf {
flashvars?: Object | string
}
export class ReactSWF extends __React.Component<Props, State>{
render(): __React.DOMElement<any>
/**
* Returns the Flash Player object DOM node.
* Should be prefered over `React.findDOMNode`.
Expand Down
4 changes: 2 additions & 2 deletions react/react-addons-test-utils.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ declare namespace __React {
export var wheel: EventSimulator;
}

export function renderIntoDocument(
element: DOMElement<any>): Element;
export function renderIntoDocument<T extends Element>(
element: DOMElement<any, T>): T;
export function renderIntoDocument<P>(
element: ReactElement<P>): Component<P, any>;
export function renderIntoDocument<C extends Component<any, any>>(
Expand Down
12 changes: 6 additions & 6 deletions react/react-dom.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ declare namespace __React {
function findDOMNode<E extends Element>(instance: ReactInstance): E;
function findDOMNode(instance: ReactInstance): Element;

function render<P>(
element: DOMElement<P>,
function render<P extends DOMAttributes, T extends Element>(
element: DOMElement<P, T>,
container: Element,
callback?: (element: Element) => any): Element;
callback?: (element: T) => any): T;
function render<P, S>(
element: ClassicElement<P>,
container: Element,
Expand All @@ -31,11 +31,11 @@ declare namespace __React {
function unstable_batchedUpdates<A>(callback: (a: A) => any, a: A): void;
function unstable_batchedUpdates(callback: () => any): void;

function unstable_renderSubtreeIntoContainer<P>(
function unstable_renderSubtreeIntoContainer<P extends DOMAttributes, T extends Element>(
parentComponent: Component<any, any>,
nextElement: DOMElement<P>,
element: DOMElement<P, T>,
container: Element,
callback?: (element: Element) => any): Element;
callback?: (element: T) => any): T;
function unstable_renderSubtreeIntoContainer<P, S>(
parentComponent: Component<any, any>,
nextElement: ClassicElement<P>,
Expand Down
8 changes: 4 additions & 4 deletions react/react-global-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,25 +125,25 @@ var classicFactory: React.ClassicFactory<Props> =
var classicFactoryElement: React.ClassicElement<Props> =
classicFactory(props);

var domFactory: React.DOMFactory<any> =
var domFactory: React.DOMFactory<React.DOMAttributes, Element> =
React.createFactory("foo");
var domFactoryElement: React.DOMElement<any> =
var domFactoryElement: React.DOMElement<React.DOMAttributes, Element> =
domFactory();

// React.createElement
var element: React.ReactElement<Props> =
React.createElement(ModernComponent, props);
var classicElement: React.ClassicElement<Props> =
React.createElement(ClassicComponent, props);
var domElement: React.ReactHTMLElement =
var domElement: React.ReactHTMLElement<HTMLDivElement> =
React.createElement("div");

// React.cloneElement
var clonedElement: React.ReactElement<Props> =
React.cloneElement(element, props);
var clonedClassicElement: React.ClassicElement<Props> =
React.cloneElement(classicElement, props);
var clonedDOMElement: React.ReactHTMLElement =
var clonedDOMElement: React.ReactHTMLElement<HTMLDivElement> =
React.cloneElement(domElement);

// React.render
Expand Down
8 changes: 4 additions & 4 deletions react/react-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ var classicFactory: React.ClassicFactory<Props> =
var classicFactoryElement: React.ClassicElement<Props> =
classicFactory(props);

var domFactory: React.DOMFactory<any> =
var domFactory: React.DOMFactory<React.DOMAttributes, Element> =
React.createFactory("foo");
var domFactoryElement: React.DOMElement<any> =
var domFactoryElement: React.DOMElement<React.DOMAttributes, Element> =
domFactory();

// React.createElement
Expand All @@ -182,7 +182,7 @@ var statelessElement: React.ReactElement<SCProps> =
React.createElement(StatelessComponent, props);
var classicElement: React.ClassicElement<Props> =
React.createElement(ClassicComponent, props);
var domElement: React.ReactHTMLElement =
var domElement: React.ReactHTMLElement<HTMLDivElement> =
React.createElement("div");

// React.cloneElement
Expand All @@ -194,7 +194,7 @@ var clonedStatelessElement: React.ReactElement<SCProps> =
React.cloneElement(statelessElement, <SCProps>{ foo: 44 });
var clonedClassicElement: React.ClassicElement<Props> =
React.cloneElement(classicElement, props);
var clonedDOMElement: React.ReactHTMLElement =
var clonedDOMElement: React.ReactHTMLElement<HTMLDivElement> =
React.cloneElement(domElement, {
className: "clonedElement"
});
Expand Down
Loading

0 comments on commit 1917a41

Please sign in to comment.