Пространство декларации
В TypeScript есть два пространства объявления: пространство объявления типа и пространство объявления переменной. Эти понятия будут рассматриваться ниже.
Пространство объявления типа
Пространство объявления типа содержит код, используемый в качестве аннотации типа, например следующие объявления типа:
Вы можете использовать Foo
, Bar
, Bas
в качестве аннотаций типа, например:
Обратите внимание, что хотя вы определяете interface Bar
, вы не можете использовать ее как переменную, поскольку она не определена в пространстве объявления переменных:
Причина, по которой сообщается cannot find name 'Bar'
, заключается в том, что имя Bar
не определено в пространстве объявления переменных. Это перенесет нас к следующей теме 'Пространство объявления переменных'.
Пространство объявления переменных
Пространство объявления переменных содержит код, который можно использовать в качестве переменных. В приведенном выше описании class Foo
предоставляет тип Foo
для пространства объявления типов. Кроме того, он также предоставляет переменную Foo для пространства объявлений переменных следующим образом:
Это замечательно, особенно если вы хотите передать класс в качестве переменной.
Мы не можем использовать interface
в качестве переменной.
Точно так же переменные, которые вы объявляете с помощью var
, const
и let
могут использоваться только в пространстве объявления переменных и не могут использоваться в качестве аннотаций типов.
Причина, по которой сообщается cannot find name
, заключается в том, что переменная foo
не определена в пространстве объявления типа.
Last updated
Was this helpful?