Подтвердить что ты не робот

В VSCode при экспорте функций: "Индивидуальные декларации должны быть экспортированы или все локальные",

Недавно я обновился до Visual Studio Code 0.5.0 и появилось несколько новых ошибок, которые раньше не были.

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

Это пример локальной экспортируемой функции.

var testParamsCreatorUpdater = function (lTestParams, creatorID){
    lTestParams.creator = creatorID;
    return lTestParams;
};
module.exports.testParamsCreatorUpdater = testParamsCreatorUpdater;

Я понимаю, что могу изменить это, чтобы...

module.exports.testParamsCreatorUpdater = function (lTestParams, creatorID){
    lTestParams.creator = creatorID;
    return lTestParams;
};

И добавьте module.exports. к каждому вызову testParamsCreatorUpdater().

Но почему первый фрагмент ошибочен? Как я понимаю, require() делает все в объекте module.exports доступным для любого требуемого.

4b9b3361

Ответ 1

Я думаю, что это связано с особенностью объединенной декларации для TypeScript ref. Я не сделал подробных исследований для TypeScript, но кажется, что он может включать Javascript в файл TypeScript.

Я предполагаю, что метод testParamsCreatorUpdater был объявлен в Javascript как ошибка VSCode, потому что он думает, что два объявления не могут быть объединены.

Ответ 2

Я думаю, что на уровне JavaScript он не может различать:

var testParamsCreatorUpdater = ...

и

module.exports.testParamsCreatorUpdater = ...

поскольку имена совпадают. Я получил ту же ошибку (приводя меня к этому сообщению) в TypeScript, когда я пробовал это:

import { AuditService } from '../services/audit.service';
import { Audit } from '../models/audit.model';

@Component({
    selector: 'audit',
    templateUrl: './audit.component.html',
})
export class Audit {
    constructor(private auditService: AuditService) {
    }
}

Так что TypeScript мне не понравилось, что я импортировал модуль под названием Audit и экспортировал класс, также называемый Audit.