`Export type` trong Typescript là gì?


79

Tôi nhận thấy cú pháp sau đây trong Typescript.

export type feline = typeof cat;

Theo như tôi biết, typenó không phải là một kiểu cơ bản được tích hợp sẵn , cũng không phải là một giao diện hay lớp. Trên thực tế, nó trông giống như một cú pháp cho răng cưa, tuy nhiên tôi không thể tìm thấy tài liệu tham khảo để xác minh suy đoán của mình.

Vậy câu nói trên có ý nghĩa gì?

Câu trả lời:


96

Đây là một bí danh kiểu - nó được sử dụng để đặt tên khác cho một kiểu.

Trong ví dụ của bạn, felinesẽ là loại bất cứ điều gì cat.

Đây là một ví dụ đầy đủ hơn:

interface Animal {
    legs: number;
}

const cat: Animal = { legs: 4 };

export type feline = typeof cat;

felinesẽ là loại Animalvà bạn có thể sử dụng nó như một loại ở bất cứ đâu bạn muốn.

const someFunc = (cat: feline) => {
    doSomething();
};

exportchỉ cần xuất nó từ tệp. Nó cũng giống như làm điều này:

type feline = typeof cat;

export {
    feline
};

1
Ví dụ đơn giản nhất là chuỗi loại đen:type Easing = "ease-in" | "ease-out" | "ease-in-out";
Boris Yakubchik

14
Tôi không thể hiểu sâu. Sự khác biệt giữa giao diện và kiểu là gì? Loại được sử dụng chủ yếu để làm gì?
Ashfaque Rifaye


Tôi cũng đã xem qua liên kết, nhưng vẫn không hoàn toàn rõ ràng.
Kapil Raghuwanshi

1
@KapilRaghuwanshi Microsoft nghĩ rằng ai đó có thể đã nhầm lẫn và viết một đoạn văn về sự khác biệt của họ . Như họ nói, một quy tắc chung có thể là "Ưu tiên giao diện hơn loại bất cứ khi nào bạn có thể".
TechNyquist
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.