首页 > 解决方案 > 增加打字稿中的反应类型的问题

问题描述

我正在尝试添加新的钩子以在打字稿中做出反应(最后我检查过,它们在 DefinedTyped 上不可用),但它不起作用。

我制作了一个types/react.d.ts如下所示的文件:

import React from 'react';

declare module 'react' {
  function useState<T>(
    initialState: T | (() => T),
  ): [T, (newState: T | ((oldState: T) => T)) => void];
}

但是当我尝试使用它时,它不起作用。

在此处输入图像描述

标签: reactjstypescriptreact-hooks

解决方案


您可以在此处参考 React Hooks 的流类型 - https://github.com/facebook/flow/pull/7149/

它们应该与 TypeScript 非常相似。

在 Flow 中,它看起来像:

declare type BasicStateAction<S> = (S => S) | S;
declare type Dispatch<A> = A => void;

declare export function useState<S>(
  initialState: (() => S) | S,
): [S, Dispatch<BasicStateAction<S>>];

推荐阅读