У меня React-клиент в том же проекте, что и мой Node- Express бэкэнд. Прямо сейчас мое приложение React работает с TypeScript, и я тоже хочу изменить свой бэкэнд на TypeScript.
В настоящее время у меня есть папка client
, содержащая мое приложение React и файлы моего сервера, которые просто лежат в моем каталоге root.
Теперь, поскольку я буду использовать TS на своем сервере, я спрашиваю себя, как вы обрабатываете типы в каждом проекте. Прямо сейчас, например, я объявляю interface
для реквизита компонента следующим образом: App.tsx
export interface Room {
gameId: string,
started: boolean,
players: string[]
}
function App() {
const [room, setRoom] = useState<Room>();
return (
<div className="App">
<Lobby room={room} />}
</div>
);
}
export default App;
В Lobby.tsx.
import {Room} from "../App";
export interface LobbyProps {
room: Room;
}
function Lobby(props: LobbyProps) {
return (
<React.Fragment>
<a href={'http://localhost:3000/' + props.room.gameId}>{'http://localhost:3000/' + props.room.started + " " + props.room.players}</a>
</React.Fragment>
);
}
export default Lobby;
Уже в моем приложении реакции im повторное использование интерфейсов, и мой первый вопрос: можно ли поместить их в отдельный файл, чтобы я мог использовать их из разных мест?
Второй вопрос: что, если на моем бэкенде будут одинаковые интерфейсы или типы? Должен ли я держать их с обеих сторон или какова лучшая практика здесь?
Спасибо за любой совет!