diff --git a/types/react-tabs/index.d.ts b/types/react-tabs/index.d.ts
index 013973e8df..0eabf0c613 100644
--- a/types/react-tabs/index.d.ts
+++ b/types/react-tabs/index.d.ts
@@ -1,13 +1,18 @@
-// Type definitions for react-tabs 2.3.0
+// Type definitions for react-tabs 2.3
// Project: https://github.com/reactjs/react-tabs/
-// Definitions by: Yuu Igarashi , Daniel Tschinder , Ummon Karpe
+// Definitions by: Yuu Igarashi
+// Daniel Tschinder
+// Ummon Karpe
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.8
-import * as React from 'react';
+import * as React from "react";
-export interface TabsProps {
- className?: string | Array | { [name: string]: boolean; };
+type Omit = Pick>;
+
+export interface TabsProps
+ extends Omit, "className" | "onSelect"> {
+ className?: string | string[] | { [name: string]: boolean };
defaultFocus?: boolean;
defaultIndex?: number;
disabledTabClassName?: string;
@@ -19,27 +24,30 @@ export interface TabsProps {
selectedTabPanelClassName?: string;
}
-export interface TabListProps {
- className?: string | Array | { [name: string]: boolean; };
+export interface TabListProps
+ extends Omit, "className"> {
+ className?: string | string[] | { [name: string]: boolean };
}
-export interface TabProps {
- className?: string | Array | { [name: string]: boolean; };
+export interface TabProps
+ extends Omit, "className" | "tabIndex"> {
+ className?: string | string[] | { [name: string]: boolean };
disabled?: boolean;
disabledClassName?: string;
selectedClassName?: string;
tabIndex?: string;
}
-export interface TabPanelProps {
- className?: string | Array | { [name: string]: boolean; };
+export interface TabPanelProps
+ extends Omit, "className"> {
+ className?: string | string[] | { [name: string]: boolean };
forceRender?: boolean;
selectedClassName?: string;
}
-export declare class Tabs extends React.Component { }
-export declare class TabList extends React.Component { }
-export declare class Tab extends React.Component { }
-export declare class TabPanel extends React.Component { }
+export declare class Tabs extends React.Component {}
+export declare class TabList extends React.Component {}
+export declare class Tab extends React.Component {}
+export declare class TabPanel extends React.Component {}
export declare function resetIdCounter(): void;
diff --git a/types/react-tabs/react-tabs-tests.ts b/types/react-tabs/react-tabs-tests.ts
index a7b86de6e0..7488a8a55a 100644
--- a/types/react-tabs/react-tabs-tests.ts
+++ b/types/react-tabs/react-tabs-tests.ts
@@ -9,7 +9,8 @@ import {
TabProps,
TabPanel,
TabPanelProps,
- resetIdCounter } from "react-tabs";
+ resetIdCounter
+} from "react-tabs";
resetIdCounter();
@@ -26,15 +27,18 @@ class TestApp extends React.Component {
}
render() {
- return React.createElement(Tabs, {onSelect: this.onSelect, selectedIndex: 1},
- React.createElement(TabList, {className: "test-class"},
- React.createElement(Tab, {disabled: true}, "Tab1"),
- React.createElement(Tab, {selectedClassName: "active"}, "Tab2"),
- React.createElement(Tab, {}, "Tab3")),
- React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content1")),
- React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content2")),
- React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content3")));
+ return React.createElement(Tabs, { onSelect: this.onSelect, selectedIndex: 1, defaultFocus: true, name: 'Tabs', autoFocus: true },
+ React.createElement(TabList, { className: "test-class" },
+ React.createElement(Tab, { disabled: true }, "Tab1"),
+ React.createElement(Tab, { selectedClassName: "active" }, "Tab2"),
+ React.createElement(Tab, {}, "Tab3")),
+ React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content1")),
+ React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content2")),
+ React.createElement(TabPanel, {}, React.createElement("h2", {}, "Content3")));
}
}
-ReactDOM.render(React.createElement(TestApp, {}), document.getElementById("test-app"));
+ReactDOM.render(
+ React.createElement(TestApp, {}),
+ document.getElementById("test-app")
+);
diff --git a/types/react-tabs/tslint.json b/types/react-tabs/tslint.json
index a41bf5d19a..3d429fc065 100644
--- a/types/react-tabs/tslint.json
+++ b/types/react-tabs/tslint.json
@@ -1,79 +1,12 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "adjacent-overload-signatures": false,
- "array-type": false,
- "arrow-return-shorthand": false,
- "ban-types": false,
- "callable-types": false,
- "comment-format": false,
- "dt-header": false,
- "eofline": false,
- "export-just-namespace": false,
- "import-spacing": false,
- "interface-name": false,
- "interface-over-type-literal": false,
- "jsdoc-format": false,
- "max-line-length": false,
- "member-access": false,
- "new-parens": false,
"no-any-union": false,
- "no-boolean-literal-compare": false,
- "no-conditional-assignment": false,
- "no-consecutive-blank-lines": false,
- "no-construct": false,
- "no-declare-current-package": false,
- "no-duplicate-imports": false,
- "no-duplicate-variable": false,
"no-empty-interface": false,
- "no-for-in-array": false,
- "no-inferrable-types": false,
- "no-internal-module": false,
- "no-irregular-whitespace": false,
- "no-mergeable-namespace": false,
- "no-misused-new": false,
- "no-namespace": false,
"no-object-literal-type-assertion": false,
- "no-padding": false,
- "no-redundant-jsdoc": false,
- "no-redundant-jsdoc-2": false,
- "no-redundant-undefined": false,
- "no-reference-import": false,
- "no-relative-import-in-test": false,
- "no-self-import": false,
- "no-single-declare-module": false,
- "no-string-throw": false,
- "no-unnecessary-callback-wrapper": false,
- "no-unnecessary-class": false,
"no-unnecessary-generics": false,
- "no-unnecessary-qualifier": false,
- "no-unnecessary-type-assertion": false,
- "no-useless-files": false,
- "no-var-keyword": false,
- "no-var-requires": false,
"no-void-expression": false,
- "no-trailing-whitespace": false,
- "object-literal-key-quotes": false,
- "object-literal-shorthand": false,
- "one-line": false,
- "one-variable-per-declaration": false,
- "only-arrow-functions": false,
- "prefer-conditional-expression": false,
- "prefer-const": false,
- "prefer-declare-function": false,
- "prefer-for-of": false,
- "prefer-method-signature": false,
- "prefer-template": false,
- "radix": false,
- "semicolon": false,
- "space-before-function-paren": false,
- "space-within-parens": false,
"strict-export-declare-modifiers": false,
- "trim-file": false,
- "triple-equals": false,
- "typedef-whitespace": false,
- "unified-signatures": false,
- "void-return": false,
- "whitespace": false
+ "void-return": false
}
}