Next.js & TypeScript
React Typescript

React Typescript

Di dalam React terdapat beberapa types yang paling sering digunakan, yaitu:

ReactNode

ReactNode adalah tipe data yang bisa berisi semua tipe data yang ada di React, seperti ReactElement, string, number, boolean, null, undefined, dan array.

import { ReactNode } from "react";
 
interface Props {
  children: ReactNode;
}
 
const Button = ({ children }: Props) => {
  return <button>{children}</button>;
};
 
export default Button;

ReactElement

ReactElement adalah tipe data yang bisa berisi semua tipe data yang ada di React, seperti string, number, boolean, null, undefined, dan array.

import { ReactElement } from "react";
 
interface Props {
  children: ReactElement;
}
 
const Button = ({ children }: Props) => {
  return <button>{children}</button>;
};
 
export default Button;

MouseEvent

MouseEvent adalah tipe data yang digunakan untuk menangkap event dari mouse.

import { MouseEvent } from "react";
 
interface Props {
  onClick: (event: MouseEvent<HTMLButtonElement>) => void;
}
 
const Button = ({ onClick }: Props) => {
  return <button onClick={onClick}>Click Me</button>;
};
 
export default Button;

ChangeEvent

ChangeEvent adalah tipe data yang digunakan untuk menangkap event dari perubahan pada input.

import { ChangeEvent } from "react";
 
interface Props {
  onChange: (event: ChangeEvent<HTMLInputElement>) => void;
}
 
const Input = ({ onChange }: Props) => {
  return <input onChange={onChange} />;
};
 
export default Input;

FormEvent

FormEvent adalah tipe data yang digunakan untuk menangkap event dari submit form.

import { FormEvent } from "react";
 
interface Props {
  onSubmit: (event: FormEvent<HTMLFormElement>) => void;
}
 
const Form = ({ onSubmit }: Props) => {
  return <form onSubmit={onSubmit} />;
};
 
export default Form;

KeyboardEvent

KeyboardEvent adalah tipe data yang digunakan untuk menangkap event dari keyboard.

import { KeyboardEvent } from "react";
 
interface Props {
  onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
}
 
const Input = ({ onKeyDown }: Props) => {
  return <input onKeyDown={onKeyDown} />;
};
 
export default Input;