Đố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
}