diff --git a/types/react/index.d.ts b/types/react/index.d.ts
index e41299fdb5..f9b199cbd5 100644
--- a/types/react/index.d.ts
+++ b/types/react/index.d.ts
@@ -265,7 +265,7 @@ declare namespace React {
function isValidElement
(object: {} | null | undefined): object is ReactElement
;
const Children: ReactChildren;
- const Fragment: symbol | number;
+ const Fragment: ComponentType;
const version: string;
//
@@ -281,10 +281,8 @@ declare namespace React {
constructor(props: P, context?: any);
// Disabling unified-signatures to have separate overloads. It's easier to understand this way.
- // tslint:disable:unified-signatures
- setState(f: (prevState: Readonly, props: P) => Pick, callback?: () => any): void;
- setState(state: Pick, callback?: () => any): void;
- // tslint:enable:unified-signatures
+ setState(f: (prevState: Readonly, props: P) => Pick, callback?: () => any): void; // tslint:disable-line:unified-signatures
+ setState(state: Pick, callback?: () => any): void; // tslint:disable-line:unified-signatures
forceUpdate(callBack?: () => any): void;
render(): ReactNode;
@@ -3519,17 +3517,15 @@ declare namespace React {
declare global {
namespace JSX {
- // tslint:disable:no-empty-interface
- interface Element extends React.ReactElement { }
+ interface Element extends React.ReactElement { } // tslint:disable-line:no-empty-interface
interface ElementClass extends React.Component {
render(): React.ReactNode;
}
interface ElementAttributesProperty { props: {}; }
interface ElementChildrenAttribute { children: {}; }
- interface IntrinsicAttributes extends React.Attributes { }
- interface IntrinsicClassAttributes extends React.ClassAttributes { }
- // tslint:enable:no-empty-interface
+ interface IntrinsicAttributes extends React.Attributes { } // tslint:disable-line:no-empty-interface
+ interface IntrinsicClassAttributes extends React.ClassAttributes { } // tslint:disable-line:no-empty-interface
interface IntrinsicElements {
// HTML
diff --git a/types/react/test/index.ts b/types/react/test/index.ts
index 3c49215c8a..e8aabfa35c 100644
--- a/types/react/test/index.ts
+++ b/types/react/test/index.ts
@@ -164,7 +164,7 @@ const statelessElement: React.SFCElement = React.createElement(Stateles
const domElement: React.DOMElement, HTMLDivElement> = React.createElement("div");
const htmlElement = React.createElement("input", { type: "text" });
const svgElement = React.createElement("svg", { accentHeight: 12 });
-const fragmentElement: React.ReactElement = React.createElement(React.Fragment, undefined, [React.createElement("div"), React.createElement("div")]);
+const fragmentElement: React.ReactElement<{}> = React.createElement(React.Fragment, {}, [React.createElement("div"), React.createElement("div")]);
const customProps: React.HTMLProps = props;
const customDomElement = "my-element";
@@ -229,7 +229,7 @@ const notValid: boolean = React.isValidElement(props); // false
const isValid = React.isValidElement(element); // true
let domNode: Element = ReactDOM.findDOMNode(component);
domNode = ReactDOM.findDOMNode(domNode);
-const fragmentType: symbol | number = React.Fragment;
+const fragmentType: React.ComponentType = React.Fragment;
//
// React Elements
@@ -255,7 +255,7 @@ myComponent.reset();
// Refs
// --------------------------------------------------------------------------
-// tslint:disable:no-empty-interface
+// tslint:disable-next-line:no-empty-interface
interface RCProps { }
class RefComponent extends React.Component {
diff --git a/types/react/test/tsx.tsx b/types/react/test/tsx.tsx
index dd91b5a0bd..6322f8f234 100644
--- a/types/react/test/tsx.tsx
+++ b/types/react/test/tsx.tsx
@@ -63,3 +63,17 @@ const StatelessComponentWithoutProps: React.SFC = (props) => {
return ;
};
;
+
+// Fragments
+
+
+
+ Child 1
+ Child 2
+
+
+ Child 3
+ Child 4
+
+
+
;