Definitelytyped: [@ types / react] createContext –「defaultValue」の引数が指定されていません。

作成日 2019年07月20日  ·  4コメント  ·  ソース: DefinitelyTyped/DefinitelyTyped

ここで引数defaultValueがオプションではない理由はありますか?

import * as React from 'react';
import * as firebase from 'firebase/app';

interface AuthProps {
  children: any;
}
interface AuthState {
  user: firebase.User | null;
}
interface AuthContextProps extends AuthState {
  updateUser(user: firebase.User | null): void;
}

export const AuthContext = React.createContext<AuthContextProps>(); // <-- ERROR HERE!

// export const AuthConsumer = AuthContext.Consumer;
export const AuthProvider = (props: AuthProps) => {
  const [state, setState] = React.useState<AuthState>({
    user: null,
  });

  const updateUser = (user: firebase.User | null) => setState({ user });

  return (
    <AuthContext.Provider
      value={{
        updateUser,
        user: state.user,
      }}
    >
      {props.children}
    </AuthContext.Provider>
  );
};

ドキュメントのURL: https

defaultValue引数は、コンポーネントのツリー内でその上に一致するプロバイダーがない場合にのみ使用されます。

上記のツリーに一致するプロバイダーがあるので、デフォルト値を設定せずにコンテキストを作成できるはずです。それとも間違っていますか?

最も参考になるコメント

デフォルト値がないため、typescript実行ビルドが機能しません。 これをオプションにする方法はありますか?

全てのコメント4件

私は今のところこの問題を閉じています。 これが本当の問題だと誰かが思ったら、自由に貢献してください。

デフォルト値がないため、typescript実行ビルドが機能しません。 これをオプションにする方法はありますか?

デフォルト値なしでコードをコンパイルしたい場合は、 null初期化できます。

export const AuthContext = React.createContext(null)

nullソリューションは機能しなくなりました。 新しい問題を提出します。〜

編集:いいえ、 https

このページは役に立ちましたか?
0 / 5 - 0 評価