Bagaimana Cara Mengetahui Tipe Props Komponen React Tertentu di TypeScript?

Dibuat
·
Dilihat24 kali
0

Saya biasanya menggunakan JavaScript saat menggunakan React, saat ini pengen pindah ke TypeScript, ketika mencobanya saya kebingungan bagaimana caranya mengetahui tipe props dari sebuah komponen JSX misalnya <button> apakah harus menghafal satu per satu atau adakah cara untuk melihatnya?

Misalnya kode di bawah ini, bagaimana cara mengetahui tipe props agar tidak error ketika diteruskan ke <button>.

function Button(
  props: any
  // ^ apa tipe props ini?
) {
  return <button {...props} />;
}
1 Jawaban
0

Ada tipe helper generic yang bisa mengetahui tipe berdasarkan nama tag html/jsx nya, yaitu ComponentProps<T>, kalau button bisa pakai ComponentProps<'button'>, seperti ini:

import type { ComponentProps } from "react";

function Button(
  props: ComponentProps<'button'>
) {
  return <button {...props} />;
}

Kalau pakai VS Code, arahkan kursor ke nama komponen atau nama tag nya nanti akan muncul popup berisi detail tipenya. Misalnya, kalau <button> akan terlihat seperti ini:

(property) JSX.IntrinsicElements.button: DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>

Kalau sudah keliatan, tinggal disalin mulai dari sebelah kanan tanda : ke kanan, jadinya seperti ini:

function Button(
  props: DetailedHTMLProps<
    ButtonHTMLAttributes<HTMLButtonElement>,
    HTMLButtonElement
  >
) {
  return <button {...props} />;
}

Kalau DetailedHTMLProps dan ButtonHTMLAttributes error, tinggal tambahkan React. dibelakangnya, jadinya React.DetailedHTMLProps dan React.ButtonHTMLAttributes. Atau bisa juga dengan mengimpor tipe tersebut dari react, seperti ini: import type { ButtonHTMLAttributes, DetailedHTMLProps } from "react";

Dibuat

Kamu tau jawabannya?

Ayo bergabung bersama lebih dari 200.000 pengguna lainnya!