@Boris007

В каких случаях надо испоinterfacce, а не type?

Почитал про type и interface, и вышло, что они практический идентичны, кроме нюансов, как какой можно расширять или объединять.
И тем не менее часто вижу, что interfacce часто используют
В каких случаях какой надо использовать или сейчас все уже просто используют type?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
bingo347
@bingo347 Куратор тега TypeScript
Crazy on performance...
interface поддерживает extends (который компилируется быстрее чем intersection (&) как верно подметил Василий Банников )
interface A extends B, C {}
interface B {}
type C = {}; // interface вполне может extends из type


interface поддерживает declaration merging
interface A {
  a: number;
}
interface A {
  b: number;
}
const a: A = {a: 1, b: 2};


type поддерживает вычисления типа на верхнем уровнеtype A = B | C; // на interface такого не выразишь

В остальном различий нет.
Declaration merging может подложить жабу в реальном проекте, но полезен при написании библиотек, которые могут быть расширены извне (плагины jQuery например)
В целом type более универсален и надежен. И не сильно он медленнее. Вся его медленность заключается в том, что компилятор производит вычисления типа, которые так же возможны и в полях интерфейса, а значит присутствуют и там.
Для Java/C# разрабов, читающих TS, interface более понятная конструкция (хотя и обманчиво).

В целом все зависит от стайл гайда, который примет команда. Главное чтоб везде одинаково было.
Ответ написан
vabka
@vabka
Токсичный шарпист
Везде используй interface, если это возможно.
type сильно влияет на скорость компиляции и проверки типов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы