From 4c4aeebb1e33a5a86b7bb6def10e79b1fc7f2ae2 Mon Sep 17 00:00:00 2001 From: Tadas Dailyda Date: Wed, 2 Nov 2016 17:16:32 +0200 Subject: [PATCH] react-css-modules: augment react's HTMLAttributes interface (#12184) * augment react's HTMLAttributes interface with styleName * move 'react-css-modules' declarations to top-level, turn on strictNullChecks --- react-css-modules/index.d.ts | 58 +++++++++++++++++---------------- react-css-modules/tsconfig.json | 4 +-- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/react-css-modules/index.d.ts b/react-css-modules/index.d.ts index d8a414d35f..d709a69d73 100644 --- a/react-css-modules/index.d.ts +++ b/react-css-modules/index.d.ts @@ -1,33 +1,35 @@ // Type definitions for react-css-modules 3.7.9 // Project: https://github.com/gajus/react-css-modules -// Definitions by: Kostya Esmukov +// Definitions by: Kostya Esmukov , Tadas Dailyda // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare module 'react-css-modules' { - - interface TypeOptions { - allowMultiple?: boolean; - errorWhenNotFound?: boolean; - } - - type StylesObject = any; - - interface CSSModules { - (defaultStyles: StylesObject, options?: TypeOptions): (Component: C) => C; - (Component: C, defaultStyles: StylesObject, options?: TypeOptions): C; - } - - module CSSModules { - // Extend your component's Prop interface with this one to get access to `this.props.styles` - // - // interface MyComponentProps extends CSSModules.InjectedCSSModuleProps {} - interface InjectedCSSModuleProps { - styles?: StylesObject; - } - } - - let CSSModules: CSSModules; - - export = CSSModules; +interface TypeOptions { + allowMultiple?: boolean; + errorWhenNotFound?: boolean; +} + +type StylesObject = any; + +interface CSSModules { + (defaultStyles: StylesObject, options?: TypeOptions): (Component: C) => C; + (Component: C, defaultStyles: StylesObject, options?: TypeOptions): C; +} + +declare module CSSModules { + // Extend your component's Prop interface with this one to get access to `this.props.styles` + // + // interface MyComponentProps extends CSSModules.InjectedCSSModuleProps {} + interface InjectedCSSModuleProps { + styles?: StylesObject; + } +} + +declare let CSSModules: CSSModules; + +export = CSSModules; + +declare module 'react' { + interface HTMLAttributes { + styleName?: string; + } } diff --git a/react-css-modules/tsconfig.json b/react-css-modules/tsconfig.json index 79b9eb6b27..f4ba62c160 100644 --- a/react-css-modules/tsconfig.json +++ b/react-css-modules/tsconfig.json @@ -3,7 +3,7 @@ "module": "commonjs", "target": "es6", "noImplicitAny": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" @@ -15,4 +15,4 @@ "files": [ "index.d.ts" ] -} \ No newline at end of file +}