Що таке `тип експорту` в Typescript?


80

Я помічаю такий синтаксис у Typescript.

export type feline = typeof cat;

Наскільки мені відомо, typeце не вбудований базовий тип , не є інтерфейс чи клас. Насправді це більше схоже на синтаксис для псевдонімів, який, однак, я не можу знайти посилання для підтвердження мого припущення.

То що означає вищезазначене твердження?

Відповіді:


96

Це псевдонім типу - він використовується для надання іншого імені типу.

У вашому прикладі felineбуде тип будь- catякого.

Ось більш повноцінний приклад:

interface Animal {
    legs: number;
}

const cat: Animal = { legs: 4 };

export type feline = typeof cat;

felineбуде типом Animal, і ви можете використовувати його як тип, де завгодно.

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

exportпросто експортує його з файлу. Це те саме, що робити це:

type feline = typeof cat;

export {
    feline
};

1
Найпростіший приклад - це рядкові літеральні типи:type Easing = "ease-in" | "ease-out" | "ease-in-out";
Борис Якубчик

15
Я не можу зрозуміти в глибині. У чому тоді різниця між інтерфейсом і типом? Для чого в основному використовується тип?
Ashfaque Rifaye,


Я також пройшов посилання, але все ще не зовсім зрозуміло.
Капіл Рагуванші

1
@KapilRaghuwanshi Microsoft подумав, що хтось міг розгубитися, і написав параграф про їх різницю . Як кажуть, принциповим правилом може бути: "Віддавайте перевагу інтерфейсу над типом, коли тільки можете".
TechNyquist
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.