TypeScript — интерфейсы наоборот

Сегодня по дороге в стоматологию слушал аудиокнигу «Счастливый карман, полный денег«, дорога занимает час, соответственно у меня было два часа на прослушивание. И вот там была такая мысль, что бывает так, что память нам иногда очень сильно мешает.

А еще я буквально узнал, что такое когнитивный диссонанс 🙂 понимать, понимал что такое слово есть, но его образ был для меня таким облачком. А тут я понял что это такое:

Допустим у Вас есть какое то знание, Вы им пользуетесь. Потом получаете знание, которое переворачивает Ваше знание до наоборот. И вот надо использовать это знание на практике, а в голове два знания об этом. Старое и новое, и мозг не понимает что использовать. Вот это и есть когнитивный диссонанс.

И вот ты изучаешь например один язык, второй, третий. И у тебя было понимание что интерфейсы, это то что описывает поведение. У тебя в голове паттерны, где ты используешь интерфейсы для поведения.

И приходит Microsoft и придумывает язык и делает там интерфейсы как нечто, что описывает типы объектов. т.е. есть type и сделали еще interface, вопрос зачем? вот пример:

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);

Сначала эту парадигму сломал Go, теперь еще больше сумятицы в понимание происходящего внес TypeScript.

Но куда деваться, мир стремительно двигается в сторону типизации, от которой я ссыкливо пыталься отвертеться, когда бросил стек C#+IIS+ASP.NET(MVC)+MSSQL на nxing+php+mysql. Сейчас типы идут в PHP а так же в JavaScript. Хотел убежать от типов, но они не отпускают.

Оставьте комментарий