Как вы получаете свойства универсального типа в Typescript

Что здесь происходит?

blockquote>

Вы неправильно поняли значение protected. Вы можете получить доступ к защищенным членам, объявленным в A, из C, но только для экземпляров C или подклассов C. Подробнее о защищенном доступе см. В разделе 6.6.2 раздела JLS . В частности:

Пусть C - класс, в котором объявлен защищенный член. Доступ разрешен только внутри тела подкласса S из C.

Кроме того, если Id обозначает поле экземпляра или метод экземпляра, то:

  • [... ]
  • Если доступ осуществляется с помощью выражения доступа к полю E.Id, где E является первичным выражением или выражением вызова метода E.Id (...), где E является первичным выражением, то доступ разрешен тогда и только тогда, когда тип E является S или подклассом S.
blockquote>

(Emphasis mine.)

Итак этот код был бы точным:

C c = new C();
System.out.println(c.publicInt);
System.out.println(c.protectedInt);
0
задан LanceM 6 March 2019 в 01:25
поделиться

1 ответ

Как получить свойства класса, тип которого используется?

Типы существуют только во время компиляции и стираются во время сборки, когда генерируется JavaScript. Таким образом, вы не должны полагаться на интеллектуальную информацию о типах среды выполнения из экземпляров обобщений.

Предложение

Думайте в терминах данных, а не типов. Например. возьмите строки как string[][] (2d массив строк / столбцов) и предоставьте самим классам возможность анализировать свои данные в требуемый 2d массив.

0
ответ дан basarat 6 March 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: