title: Generic type 'Dispatch<S>' requires 1 type argument(s). TS2314
body: <p>I cloned a react project in my Mac which was probably developed under Windows.</p>
  
  <p>I did <code>yarn add react-scripts</code> and <code>yarn install</code>, <code>package.json</code> is as follows. Then <code>PORT=8000 ./node_modules/.bin/react-scripts start</code> returned the following error. </p>
  
  <p>Does anyone know how to fix this?</p>
  
  <pre><code>Failed to compile.
  
  /Users/chengtie/Startup/PRODSERVER/tmp/10Studio/frontend/src/components/NoAuthLoginRedirect/index.tsx
  TypeScript error in /Users/chengtie/Startup/PRODSERVER/tmp/10Studio/frontend/src/components/NoAuthLoginRedirect/index.tsx(18,13):
  Generic type 'Dispatch&lt;S&gt;' requires 1 type argument(s).  TS2314
  
      16 | import { getAppSubscribePage } from '../../services/app-utils';
      17 | export interface INoAuthLoginRedirectProps {
    &gt; 18 |   dispatch: Dispatch;
         |             ^
      19 |   onDissmiss?: Function;
      20 |   next?: string;
      21 |   subscription?: Subscription;
  </code></pre>
  
  <p><code>package.json</code>:</p>
  
  <pre><code>{
    "name": "frontend",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
      "@material-ui/core": "^4.9.8",
      "@microsoft/office-js-helpers": "^1.0.2",
      "@testing-library/jest-dom": "^4.2.4",
      "@testing-library/react": "^9.3.2",
      "@testing-library/user-event": "^7.1.2",
      "@types/react-stripe-elements": "^6.0.4",
      "@uifabric/react-cards": "^0.109.49",
      "axios": "^0.19.2",
      "color": "^3.1.2",
      "cross-storage": "^1.0.0",
      "dva": "^2.4.1",
      "dva-model-creator": "^0.4.3",
      "formik": "^2.1.4",
      "lodash": "^4.17.15",
      "moment": "^2.24.0",
      "monaco-editor": "^0.20.0",
      "node-sass": "^4.13.1",
      "office-ui-fabric-react": "^7.105.4",
      "query-string": "^6.11.1",
      "react": "^16.13.1",
      "react-app-polyfill": "^1.0.6",
      "react-dom": "^16.13.1",
      "react-monaco-editor": "^0.35.0",
      "react-scripts": "^3.4.1",
      "react-stripe-elements": "^6.1.1",
      "redux-devtools-extension": "^2.13.8",
      "start": "^5.1.0",
      "styled-components": "^5.0.1",
      "typescript": "^3.8.3",
      "yup": "^0.28.3"
    },
    "scripts": {
      "start": "SET PORT=8000 &amp;&amp; react-scripts start",
      "build": "react-scripts --max_old_space_size=8096 build",
      "test": "react-scripts test",
      "eject": "react-scripts eject"
    },
    "eslintConfig": {
      "extends": "react-app"
    },
    "browserslist": {
      "production": [
        "&gt;0.2%",
        "not dead",
        "not op_mini all"
      ],
      "development": [
        "last 1 chrome version",
        "last 1 firefox version",
        "last 1 safari version"
      ]
    },
    "devDependencies": {
      "@types/color": "^3.0.1",
      "@types/cross-storage": "^0.8.29",
      "@types/jest": "^25.1.4",
      "@types/lodash": "^4.14.149",
      "@types/node": "^13.9.5",
      "@types/query-string": "^6.3.0",
      "@types/react": "^16.9.27",
      "@types/react-dom": "^16.9.5",
      "@types/react-redux": "^7.1.7",
      "@types/styled-components": "^5.0.1",
      "@types/yup": "^0.26.33"
    }
  }
  </code></pre>
  
  <p>Here is a part of that <code>index.tsx</code>:</p>
  
  <pre><code>import React from 'react';
  import { connect } from 'dva';
  import { Dispatch } from 'redux';
  import { push } from 'react-router-redux';
  
  import { PrimaryButton } from 'office-ui-fabric-react/lib/Button';
  import { Dialog, getId, DialogType, Stack, Text } from 'office-ui-fabric-react';
  
  import { State } from '../../store/reducer';
  import { getNextPath } from '../../selectors/header';
  import { getSubscription, getTrial } from '../../selectors/subscription';
  import { Subscription } from '../../services/subscription';
  import { getIsSubscriptionActive, getPlanProductName } from '../Plans/utils';
  import { selectAppName } from '../../selectors/app';
  import { AppName } from '../../models/app';
  import { getAppSubscribePage } from '../../services/app-utils';
  export interface INoAuthLoginRedirectProps {
    dispatch: Dispatch;
    onDissmiss?: Function;
    next?: string;
    subscription?: Subscription;
    trial: Subscription;
    feature: string;
    app: AppName;
  }
  </code></pre>