Типизация - ШРИ 2024

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024
  • Рассмотрим TypeScript с точки зрения теории множеств, разберем контроль выполнения и дженерики.

ความคิดเห็น • 10

  • @XanjaevRodmam
    @XanjaevRodmam หลายเดือนก่อน

    Отличное объяснение. Без воды и подробно. Спасибо докладчику.
    Единственное названия переменных сделаны на коленке

  • @chikenmacnugget
    @chikenmacnugget 3 หลายเดือนก่อน

    Чел на час размазал простую мысль о том, что нельзя присвоить тип "а" туда где ожидается тип "б". Браво

  • @localhost666
    @localhost666 3 หลายเดือนก่อน

    {} - [] будет NaN, а не -0

    • @mukhindev
      @mukhindev 3 หลายเดือนก่อน

      Зависит от контекста в котором это выражение находится. {} - [] вернёт -0, ({} - []) вернёт NaN

    • @localhost666
      @localhost666 3 หลายเดือนก่อน

      @@mukhindev а в чем собственно разница данных выражений?

    • @localhost666
      @localhost666 3 หลายเดือนก่อน +1

      Признаю, действительно -0.
      Вопрос какого х*я??
      Массив будет приведен к 0.
      Объект же е строке обжект обжект, которая далее станет NaN, итог NaN.
      Где ошибка в рассуждении?..

    • @mukhindev
      @mukhindev 3 หลายเดือนก่อน

      ​@@localhost666 без скобок {} определяется как блок (block statement), а со скобками как объект. Это особенности синтаксического разбора.
      К примеру, если это выражение присваивать через = переменной, парсеру однозначно понятно что {} не блок и будет тоже NaN.

    • @mukhindev
      @mukhindev 3 หลายเดือนก่อน

      По приведению массива к 0. Сначала возвращается пустая строка "", затем приведение пустой строки к числу (из-за +) даст 0. См. про методы valueOf и toString.
      Можно вот так "хакнуть"
      const array = []
      array.valueOf = () => {
      return 42
      }
      console.log(array + 5) // 47