TypeScript
Best Practice

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