Skip to main content

Working with React in Typescript

Introduction

React is a popular JavaScript library for building user interfaces, particularly for single-page applications. You can use it to build both mobile and web applications. In this tutorial, we will talk about how you can use React with TypeScript, a statically typed superset of JavaScript that adds optional types.

The combination of TypeScript and React can be a powerful tool in your development arsenal. TypeScript allows you to write code that is easier to understand, more predictable, and less prone to runtime errors. Meanwhile, React provides a straightforward way to build performant, complex, and interactive UIs.

Here's how you can get the best of both worlds.

Setting Up

To start working with React and TypeScript, you need to have Node.js and npm (Node Package Manager). If you don't have these, you can download and install them from the official website.

Once you have Node.js and npm installed, you can create a new React project with TypeScript by running the following command in your terminal:

npx create-react-app my-app --template typescript

This command will create a new directory called my-app with a new React project set up with TypeScript.

Creating a Component

In React, UIs are made up of components. Let's create a simple HelloWorld component using TypeScript:

import React from 'react';

interface HelloWorldProps {
name: string;
}

const HelloWorld: React.FC<HelloWorldProps> = ({ name }) => {
return <h1>Hello, {name}!</h1>;
};

export default HelloWorld;

In the above code, we first import React. Then, we define an interface HelloWorldProps that describes the props our component expects. The HelloWorld component is a functional component that takes these props and returns a JSX element.

Using a Component

You can use this component in another one like so:

import React from 'react';
import HelloWorld from './HelloWorld';

const App: React.FC = () => {
return (
<div className="App">
<HelloWorld name="World" />
</div>
);
};

export default App;

In this code, we first import React and our HelloWorld component. Then, we create another functional component App that uses the HelloWorld component and passes a prop name with a value World.

State and Lifecycle

In React, you can use state and lifecycle methods to add interactivity and side effects to your components. If you're using functional components, you can use hooks for this. Here's an example of a counter component with state:

import React, { useState } from 'react';

const Counter: React.FC = () => {
const [count, setCount] = useState(0);

return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
};

export default Counter;

In this code, we use the useState hook to add a state variable count and a function to update it setCount. Then, we use these in our JSX to display the count and update it when the button is clicked.

Conclusion

This tutorial provided a brief introduction to using React with TypeScript. We learned how to set up a new project, create components, use props, and add state and interactivity with hooks. Hopefully, this tutorial helped you understand the benefits of using TypeScript with React and how you can get started. Happy coding!