diff --git a/README.md b/README.md
index 1a261b9..b373db8 100644
--- a/README.md
+++ b/README.md
@@ -46,8 +46,8 @@ This gives you the power to prioritize our work and support the project contribu
- [Type Definitions & Complementary Libraries](#type-definitions--complementary-libraries)
- [React Types Cheatsheet](#react-types-cheatsheet) 🌟 __NEW__
- [Component Typing Patterns](#component-typing-patterns)
- - [Stateless Components - SFC](#stateless-components---sfc)
- - [Stateful Components - Class](#stateful-components---class) 📝 __UPDATED__
+ - [Function Components - FC](#function-components---ffc)
+ - [Class Components ](#class-components) 📝 __UPDATED__
- [Generic Components](#generic-components)
- [Render Props](#render-props) 🌟 __NEW__
- [Higher-Order Components](#higher-order-components) 📝 __UPDATED__
@@ -104,22 +104,22 @@ npm i -D @types/react @types/react-dom @types/react-redux
# React Types Cheatsheet
-#### `React.StatelessComponent
` or `React.SFC
`
-Type representing stateless functional component
+#### `React.FunctionComponent
` or `React.FC
`
+Type representing a functional component
```tsx
-const MyComponent: React.SFC = ...
+const MyComponent: React.FC = ...
```
[⇧ back to top](#table-of-contents)
#### `React.Component`
-Type representing stateful class component
+Type representing a class component
```tsx
class MyComponent extends React.Component { ...
```
[⇧ back to top](#table-of-contents)
#### `React.ComponentType`
-Type representing union type of (SFC | Component)
+Type representing union type of (FC | Component)
```tsx
const withState =
(
WrappedComponent: React.ComponentType
,
@@ -172,20 +172,20 @@ const handleChange = (ev: React.MouseEvent) => { ... }
# Component Typing Patterns
-## Stateless Components - SFC
+## Function Components - FC
-#### - stateless counter
+#### - counter component
```tsx
import * as React from 'react';
-export interface SFCCounterProps {
+export interface FCCounterProps {
label: string;
count: number;
onIncrement: () => any;
}
-export const SFCCounter: React.SFC = (props) => {
+export const FCCounter: React.FC = (props) => {
const { label, count, onIncrement } = props;
const handleIncrement = () => { onIncrement(); };
@@ -211,12 +211,12 @@ export const SFCCounter: React.SFC = (props) => {
```tsx
import * as React from 'react';
-export interface SFCSpreadAttributesProps {
+export interface FCSpreadAttributesProps {
className?: string;
style?: React.CSSProperties;
}
-export const SFCSpreadAttributes: React.SFC = (props) => {
+export const FCSpreadAttributes: React.FC = (props) => {
const { children, ...restProps } = props;
return (
@@ -234,14 +234,14 @@ export const SFCSpreadAttributes: React.SFC = (props)
---
-## Stateful Components - Class
+## Class Components
-#### - stateful counter
+#### - class counter
```tsx
import * as React from 'react';
-export interface StatefulCounterProps {
+export interface ClassCounterProps {
label: string;
}
@@ -249,7 +249,7 @@ interface State {
readonly count: number;
}
-export class StatefulCounter extends React.Component {
+export class ClassCounter extends React.Component {
readonly state: State = {
count: 0,
};
@@ -276,7 +276,7 @@ export class StatefulCounter extends React.Component =
- class extends React.Component {
+export const ClassCounterWithDefault: React.ComponentClass =
+ class extends React.Component {
// to make defaultProps strictly typed we need to explicitly declare their type
// @see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11640
static defaultProps: DefaultProps = {
@@ -310,7 +310,7 @@ export const StatefulCounterWithDefault: React.ComponentClass(
import * as React from 'react';
import { withState } from '../hoc';
-import { SFCCounter } from '../components';
+import { FCCounter } from '../components';
-const SFCCounterWithState =
- withState(SFCCounter);
+const FCCounterWithState =
+ withState(FCCounter);
export default () => (
-
+
);
```
@@ -1450,7 +1450,7 @@ Related `ts-lint` rule: https://palantir.github.io/tslint/rules/interface-over-t
### - how to best initialize class instance or static properties?
> Prefered modern style is to use class Property Initializers
```tsx
-class StatefulCounterWithInitialCount extends React.Component {
+class ClassCounterWithInitialCount extends React.Component {
// default props using Property Initializers
static defaultProps: DefaultProps = {
className: 'default-class',
@@ -1470,7 +1470,7 @@ class StatefulCounterWithInitialCount extends React.Component {
### - how to best declare component handler functions?
> Prefered modern style is to use Class Fields with arrow functions
```tsx
-class StatefulCounter extends React.Component {
+class ClassCounter extends React.Component {
// handlers using Class Fields with arrow functions
handleIncrement = () => {
this.setState({ count: this.state.count + 1 });