Cả hai đều mô tả shape của object và phần lớn thay thế được cho nhau. Khác biệt cốt lõi:
interface: mở rộng bằngextends, và có declaration merging — khai báo trùng tên sẽ gộp lại. Hợp public API của thư viện, mô hình hướng đối tượng.type(type alias): đặt tên cho bất kỳ kiểu — union, intersection, tuple, primitive, mapped/conditional types. Không merge, không re-open sau khi khai báo.
Quy tắc kinh nghiệm (TS team): ưu tiên interface cho object thuần / kế thừa; chuyển sang type khi cần feature chỉ type có (union, tuple, utility phức tạp). Khác biệt hiệu năng nhỏ, không phải yếu tố quyết định.