Ошибка машинописи: TS2304 не может найти имя - PullRequest
0 голосов
/ 02 марта 2019

Проезжая курс машинописи, я наткнулся на эти фрагменты кода, которые не компилируются и выдают ошибку TS2304.Любая помощь приветствуется.

файл ZooAnimals.ts:

namespace Zoo {
    interface Animal {
        skinType: string;
        isMammal(): boolean;
    }
}

Файл ZooBirds.ts:

/// <reference path="ZooAnimals.ts" />
namespace Zoo {
    export class Bird implements Animal {
        skinType = "feather";
        isMammal() {
            return false;
        }
    }
}

Команда для компиляции файлов:

tsc --outFile Zoo.js ZooAnimals.ts ZooBirds.ts

Выдает ошибку:

ZooBirds.ts:3:34 - error TS2304: Cannot find name 'Animal'.

3     export class Bird implements Animal {

1 Ответ

0 голосов
/ 02 марта 2019

Чтобы использовать интерфейс для файлов (или, точнее, для нескольких объявлений namespace), его необходимо экспортировать (даже если он является частью одного и того же пространства имен).Это будет работать:

namespace Zoo {
    export interface Animal {
        skinType: string;
        isMammal(): boolean;
    }
}
namespace Zoo {
    export class Bird implements Animal {
        skinType = "feather";
        isMammal() {
            return false;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...