在打字稿中增加反应类型的问题

Issue augmenting the react types in typescript

我正在尝试添加新的钩子以在 typescript 中做出反应(上次我检查过,它们在 DefinitelyTyped 上不可用),但它不起作用。

我创建了一个文件 types/react.d.ts,如下所示:

import React from 'react';

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

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

您可以在此处参考 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>>];

事实证明,问题与 tsconfig.json 配置有关,正如 Matt McCutchen 所建议的那样。