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;
}