Best Practice
Dalam penggunaan TypeScript berikut adalah best practice yang dapat digunakan:
Gunakan interface
untuk mendefinisikan type
interface User {
name: string;
age: number;
}
Gunakan type
untuk mendefinisikan union
atau alias
type User = {
name: string;
age: number;
};
type User = string | number;
Gunakan type
untuk mendefinisikan tuple
type User = [string, number];
Gunakan type
untuk mendefinisikan function
type User = (name: string, age: number) => void;
Gunakan type
untuk mendefinisikan generics
type User<T> = {
name: T;
age: number;
};
Gunakan type
untuk mendefinisikan intersection
type User = {
name: string;
age: number;
};
type Admin = {
permission: string;
};
type SuperUser = User & Admin;
Gunakan type
untuk mendefinisikan mapped types
type User = {
name: string;
age: number;
};
type UserReadOnly = {
readonly [P in keyof User]: User[P];
};
Declaration file
Dalam penggunaan TypeScript, terkadang kita menggunakan library yang tidak memiliki type definition. Untuk itu kita dapat membuat type definition sendiri dengan cara membuat declaration file.
Declaration file untuk library
library.d.ts
// library.d.ts
declare module "library" {
export function hello(name: string): void;
}
Declaration file untuk module
module.d.ts
// module.d.ts
declare module "module" {
export function hello(name: string): void;
}