在VSCode导出函数时:“个别声明必须全部导出或全部本地”

我最近升级到Visual Studio Code 0.5.0和一些新的错误,出现以前没有。

我有一堆在本地声明,然后导出的函数。 但是,自升级以来,hover在每个本地函数名称上都会产生错误。合并声明中的单个声明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; }; 

并prepend module.exports。 给每个testParamsCreatorUpdater()调用。

但为什么第一个片段错了? 据我所知,require()使module.exports对象中的所有东西都可用于任何需要它的东西。

我认为这与TypeScript ref的合并声明的function有关。 我还没有对Typescript进行详细的研究,但似乎可以在Typescript文件中包含Javascript。

我猜testParamsCreatorUpdater在Javascript中声明的方式被VSCode检测为错误,因为它认为这两个声明不能被合并。

我认为在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不喜欢我导入一个称为审计模块,并导出一个类也称为审计