Đối với các object, ta có thể tạo ra một prototype của object bằng từ khóa interface.

Chẳng hạn, với object sau:

const user = {
  id: 1,
  name: "Kwan",
}

Ta có thể khai báo interface của nó là:

interface User {
  id: number
  name: string
}

Sử dụng interface trên như sau:

const user: User = {
  id: 1,
  name: "Kwan",
}

Cũng có thể dùng interface để chú thích cho tham số và giá trị trả về của hàm:

function deleteUser(user: User) {}
 
function getAdminUser(): User {}

Optional

Để khai báo một thuộc tính có thể không tồn tại của object, ta dùng toán tử ? như sau:

interface User {
  id: number
  name: string
  avatar?: string
}

Use as a Shape

Interface có thể đóng vai trò như là một khuôn mẫu chung (shape) cho các instance của class:

interface User {
  name: string
  id: number
}
 
class UserAccount {
  name: string
  id: number
 
  constructor(name: string, id: number) {
    this.name = name
    this.id = id
  }
}
 
const user: User = new UserAccount("Murphy", 1)

Extending

Mở rộng interface bằng cách dùng từ khóa extends:

interface Pokemon {
  name: string
  type: string
}
 
interface BugPokemon extends Pokemon {
  canFly: boolean
}

Resources