Learning
TypeScript

TypeScript használata React-ben

Props, state, event handler-ek, useRef és children típusozása gyakorlati példákkal.

TypeScript használata React-ben

Props típusozása

type ButtonProps = {
  label: string
  onClick: () => void
  disabled?: boolean
  variant?: "primary" | "secondary" | "danger"
}

const Button = ({ label, onClick, disabled = false, variant = "primary" }: ButtonProps) => {
  return (
    <button onClick={onClick} disabled={disabled} className={`btn btn-${variant}`}>
      {label}
    </button>
  )
}
interface CardProps {
  title: string
  description: string
  imageUrl?: string
  children?: React.ReactNode
}

State típusozása

import { useState } from "react"

interface User {
  id: number
  name: string
  email: string
}

const UserProfile = () => {
  const [user, setUser] = useState<User | null>(null)
  const [loading, setLoading] = useState<boolean>(false)
  return <div>{user?.name}</div>
}

Eseménykezelők

const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  console.log(event.target.value)
}

useRef típusozása

import { useRef } from "react"

const InputFocus = () => {
  const inputRef = useRef<HTMLInputElement>(null)
  return <input ref={inputRef} />
}

Children típusozása

import { ReactNode, PropsWithChildren } from "react"

interface LayoutProps {
  children: ReactNode
  title: string
}

type CardWithChildrenProps = PropsWithChildren<{ title: string }>

On this page