最終コードは実装の詳細に依存しますが、以下はTypeScriptの認証のコンポーネントの例です。

「React」からReact、{ussestate}をインポートします。

タイプprops = {
  onlogin：（username：string、password：string）=> void;
  onsignup：（username：string、password：string）=> void;
};

コスト認証：race.fc <props> =（{onlogin、onsignup}）=> {
  const [username、setusername] = ussestate（ ''）;
  const [password、setPassword] = uesestate（ '' '）;
  const [islogin、setislogin] = ussestate（true）;

  constalusernamechange =（e：React.ChangeEvent <htmlinputelement>）=> {
    setUsername（e.target.value）;
  };

  ConstalPassWordChange =（E：React.ChangeEvent <htmlinputelement>）=> {
    SetPassWord（e.target.value）;
  };

  const handleSubmit =（e：React.Formevent）=> {
    E.PreventDefault（）;
    if（islogin）{
      onlogin（username、password）;
    } それ以外 {
      onsignup（username、password）;
    }
  };

  戻る （
    <form onsubmit = {handesubmit}>
      <h2> {Islogin？「ログイン」：「サインアップ」} </ h2>
      <label>
        ユーザー名：
        <入力型= "text" value = {username} onchange = {handleusernamechange} />
      </ label>
      <label>
        パスワード：
        <入力型= "パスワード"値= {パスワード} onchange = {handlepasswordchange} />
      </ label>
      <button type = "submit"> {islogin？「ログイン」：「サインアップ」} </button>
      <button type = "button" onclick = {（）=> setislogin（！islogin）}>
        {Islogin？「サインアップに切り替え」：「ログインに切り替え」}
      </button>
    </ form>
  ）;
};

デフォルト認証をエクスポートします。

このコードは一般的な理解のみを目的としており、実際のプロジェクトではテストされていないため、使用する前に慎重にチェックしてニーズに合わせて調整する必要があります。
Конечный код зависит от деталей реализации, но вот пример компонента для аутентификации на TypeScript, который может помочь вам начать:

import React, { useState } from 'react';

type Props = {
  onLogin: (username: string, password: string) => void;
  onSignup: (username: string, password: string) => void;
};

const Authentication: React.FC<Props> = ({ onLogin, onSignup }) => {
  const [username, setUsername] = useState('');
  const [password, setPassword] = useState('');
  const [isLogin, setIsLogin] = useState(true);

  const handleUsernameChange = (e: React.ChangeEvent<HTMLInputElement>) => {
    setUsername(e.target.value);
  };

  const handlePasswordChange = (e: React.ChangeEvent<HTMLInputElement>) => {
    setPassword(e.target.value);
  };

  const handleSubmit = (e: React.FormEvent) => {
    e.preventDefault();
    if (isLogin) {
      onLogin(username, password);
    } else {
      onSignup(username, password);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <h2>{isLogin ? 'Login' : 'Signup'}</h2>
      <label>
        Username:
        <input type="text" value={username} onChange={handleUsernameChange} />
      </label>
      <label>
        Password:
        <input type="password" value={password} onChange={handlePasswordChange} />
      </label>
      <button type="submit">{isLogin ? 'Login' : 'Signup'}</button>
      <button type="button" onClick={() => setIsLogin(!isLogin)}>
        {isLogin ? 'Switch to Signup' : 'Switch to Login'}
      </button>
    </form>
  );
};

export default Authentication;

Обратите внимание, что этот код предназначен только для общего понимания и не был протестирован в реальном проекте, поэтому перед использованием его следует тщательно проверить и адаптировать под свои потребности.