<!--
  Please provide a clear and concise description of what the bug is. Include
  screenshots if needed. Please test using the latest version of the relevant
  React packages to make sure your issue has not already been fixed.
-->

React version: `16.13.1` (although this is related to the eslint plugin).

## Steps To Reproduce

1. Install `eslint-plugin-react-hooks@4.1.0` with `@typescript-eslint/parser@4.0.1` in a TypeScript project.
2. Within your hook define a type, or cast a value to a certain type`
	```tsx
	const actions = useMemo(
    	() => bindActionCreators(MultishiftActions, dispatch) as Partial<Item>,
    	[dispatch],
  	);
	```
3. `eslint-plugin-react-hooks` responds with this error `React Hook useMemo has a missing dependency: Item. Either include it or remove the dependency array.`

<!--
  Your bug will get fixed much faster if we can run your code and it doesn't
  have dependencies other than React. Issues without reproduction steps or
  code examples may be immediately closed as not actionable.
-->

Link to code example: remirror/remirror/pull/619

- Checkout the remirror codebase 
	```bash
	git clone https://github.com/remirror/remirror
	git checkout typedoc
	```
- Install the dependencies with `pnpm`. To setup `pnpm ` run `npm i -g pnpm`. 
- Run the command `pnpm run lint:es` to lint the codebase.

<!--
  Please provide a CodeSandbox (https://codesandbox.io/s/new), a link to a
  repository on GitHub, or provide a minimal code example that reproduces the
  problem. You may provide a screenshot of the application if you think it is
  relevant to your bug report. Here are some tips for providing a minimal
  example: https://stackoverflow.com/help/mcve.
-->

## The current behavior

Types are identified as missing dependencies within a hook and [CI fails](https://github.com/remirror/remirror/pull/619/checks?check_run_id=1058210430).

## The expected behavior

Types shouldn't be identified as missing dependencies. 

}
          
          if (declaredDependencyNode.type === 'SpreadElement') {
            reportProblem({
              node: declaredDependencyNode,
              message:
                `React Hook ${context.getSource(reactiveHook)} has a spread ` +
                "element in its dependency array. This means we can't " +
                "statically verify whether you've passed the " +
                'correct dependencies.',
            });
            return;
          }
          
          
          let declaredDependency;
          try {
            declaredDependency = analyzePropertyChain(
              declaredDependencyNode,
              null,
            );
          } catch (error) {
            if (/Unsupported node type/.test(error.message)) {
              if (declaredDependencyNode.type === 'Literal') {
                if (dependencies.has(declaredDependencyNode.value)) {
                  reportProblem({
                    node: declaredDependencyNode,
                    message:
                      `The ${declaredDependencyNode.raw} literal is not a valid dependency ` +
                      `because it never changes. ` +