React Props Explained
Destructing Props
All properties that are passed into a component are passed in as a single object.
Remember that the following three examples are equivalent:
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
  // ...
}
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
  // ...
}
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
  // ...
}
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let { rating = 0, joke } = props
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let { rating = 0, joke } = props
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let { rating = 0, joke } = props
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let { rating = 0, joke } = props
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let rating = props.rating || 0
  let joke = props.joke
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let rating = props.rating || 0
  let joke = props.joke
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let rating = props.rating || 0
  let joke = props.joke
  // ...
}
export default function Joke(props: { rating: number, joke: string }) {
  let rating = props.rating || 0
  let joke = props.joke
  // ...
}
Prop Types
The following two examples are equivalent. You can create the prop types as a separate type or inline.
type JokeProps = {
  rating?: number
  joke: string
}
export default function Joke({ rating = 0, joke }: JokeProps) {
type JokeProps = {
  rating?: number
  joke: string
}
export default function Joke({ rating = 0, joke }: JokeProps) {
type JokeProps = {
  rating?: number
  joke: string
}
export default function Joke({ rating = 0, joke }: JokeProps) {
type JokeProps = {
  rating?: number
  joke: string
}
export default function Joke({ rating = 0, joke }: JokeProps) {
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
export default function Joke({ rating = 0, joke }: { rating: number, joke: string }) {
Code
export default function Joke({ rating = 0, joke }) {
   
  let stars = ""
  for (let i = 0; i < 5; i++) {
    if (i < rating) {
      stars += "⭐"
    } else {
      stars += "☆"
    }
  }
  return (
    <div>
      <p>{joke}</p>
      <p>{stars}</p>
    </div>
  )
}
export default function Joke({ rating = 0, joke }) {
   
  let stars = ""
  for (let i = 0; i < 5; i++) {
    if (i < rating) {
      stars += "⭐"
    } else {
      stars += "☆"
    }
  }
  return (
    <div>
      <p>{joke}</p>
      <p>{stars}</p>
    </div>
  )
}
export default function Joke({ rating = 0, joke }) {
   
  let stars = ""
  for (let i = 0; i < 5; i++) {
    if (i < rating) {
      stars += "⭐"
    } else {
      stars += "☆"
    }
  }
  return (
    <div>
      <p>{joke}</p>
      <p>{stars}</p>
    </div>
  )
}
export default function Joke({ rating = 0, joke }) {
   
  let stars = ""
  for (let i = 0; i < 5; i++) {
    if (i < rating) {
      stars += "⭐"
    } else {
      stars += "☆"
    }
  }
  return (
    <div>
      <p>{joke}</p>
      <p>{stars}</p>
    </div>
  )
}
App.jsx
import './App.css'
import Joke from './Joke'
function App() {
  
  return (
    <div className="">
      <h1>Dad Jokes</h1>
      <Joke joke={"I used to be a banker, but then I lost interest!"} rating={3} />
    </div>
  )
}
export default App
import './App.css'
import Joke from './Joke'
function App() {
  
  return (
    <div className="">
      <h1>Dad Jokes</h1>
      <Joke joke={"I used to be a banker, but then I lost interest!"} rating={3} />
    </div>
  )
}
export default App
import './App.css'
import Joke from './Joke'
function App() {
  
  return (
    <div className="">
      <h1>Dad Jokes</h1>
      <Joke joke={"I used to be a banker, but then I lost interest!"} rating={3} />
    </div>
  )
}
export default App
import './App.css'
import Joke from './Joke'
function App() {
  
  return (
    <div className="">
      <h1>Dad Jokes</h1>
      <Joke joke={"I used to be a banker, but then I lost interest!"} rating={3} />
    </div>
  )
}
export default App