NextJS-TS
Basic TypeScript

Basic TypeScript

TypeScript memiliki tipe data yang sama dengan JavaScript dengan beberapa tipe data tambahan yaitu:

  • Number
  • String
  • Boolean
  • Array
  • Object
  • Null
  • Undefined

Tipe data Tambahan pada TypeScript:

  • Tuple
  • Enum
  • Void
  • Never

Number

let age: number = 25;
let price: number = 99.99;

String

let name: string = "John Doe";

Boolean

let isLogged: boolean = true;

Array

let numbers: number[] = [1, 2, 3, 4, 5];
let fruits: Array<string> = ["apple", "banana", "orange"];

Null atau Undefined

let nullValue: null = null;
let undefinedValue: undefined = undefined;

Object

let user: { name: string; age: number } = { name: "John Doe", age: 25 };

Tuple

Tuple adalah tipe data untuk mendefinisikan array dengan ukuran yang tetap dan memiliki tipe data yang berbeda-beda.

type OrderDetails = [number, string[], OrderStatus];
OrderDetails = [12345, ["Product A", "Product B"], OrderStatus.Processing];

Pada contoh diatas, OrderDetails adalah tuple yang terdiri dari tiga element. Element pertama memiliki tipe data number, dan elemen kedua memiliki tipe data array string dan element ketiga memiliki tipe data enum.

Enum

Enum adalah tipe data untuk mendefinisikan sebuah nama dari suatu kumpulan nilai.

enum OrderStatus {
  Pending,
  Processing,
  Shipped,
  Delivered,
}

Pada contoh diatas, orderStatus adalah enum yang mempresentasikan status pesanan.

Any

Any adalah tipe data yang memungkinkan variabel untuk memiliki nilai dari jenis tipe data apapun.

let myName: any = "Jessy";
myName = 12345;

Pada contoh diatas, any digunakan untuk mendeklarasikan variabel myName yang awalnya memiliki nilai bertipe string, tetapi kemudian nilainya diubah menjadi bertipe number.

Void

Void adalah tipe data untuk menunjukkan bahwa suatu fungsi tidak mengembalikan nilai.

function sendOrder(order: Order): void {
  console.log("Order has been shipped");
}

Pada contoh diatas sendOrder adalah fungsi yang tidak mengembalikan nilai yang dapat digunakan oleh pemanggilnya.

Never

Never adalah tipe data untuk menggambarkan nilai yang tidak akan terjadi atau fungsi yang tidak akan mengembalikan nilai atau berakhir.

function throwError(message: string): never {
  throw new Error(message);
}

Pada contoh diatas, fungsi throwError mengembalikan tipe never karena setelah melempar kesalahan, program tidak akan melanjutkan eksekusi lebih lanjut.

Union, Intersection, Aliasing

Union

union digunakan untuk mendefinisikan tipe data yang dapat memiliki satu dari beberapa jenis nilai.

let myVariable: number | string;
myVariable = 10; // Valid
myVariable = "Hello"; // Valid
// myVariable = true;   // Error, karena boolean bukan bagian dari union type

Type, Interface, Extends

type dan interface digunakan untuk mendefinsikan struktur tipe data.

Type

type Point = {
  x: number;
  y: number;
};
 
let point: Point = {
  x: 10,
  y: 20,
};

Interface

interface Person {
  name: string;
  age: number;
}
let user: Person = {
  name: "John Doe",
  age: 25,
};

Extends

extends digunakan untuk membuat inheritance pada type dan interface.

interface User {
  name: string;
  age: number;
  isStudent: boolean;
}
interface Member extends User {
  address: string;
}

Utility