打字稿指南给出了"重复的功能实现"警告

时间:2017-05-26 02:12:18

标签: javascript typescript

我开始使用TypeScript,现在我跟随TypeScript in 5 minutes指南。当我将鼠标悬停在EXEC msdb.dbo.sp_send_dbmail @recipients = @VAR_Dest_EmailAddress, @subject = @sPlanNumber, @body = @VAR_BODY, @body_format = 'HTML' --declare the body formatting of the email to be HTML @profile_name = 'SQL Email Profile' ; 函数名称上时,我在Visual Studio Code中收到一个奇怪的警告,如下图所示。警告是:

  

[ts]重复的功能实现。

     

function greeter(person:Person):string(+1 overload)

Duplicate function implementation warning.

但是我的单个文件中没有其他独特功能的实现!当我运行set @VAR_Body = 'Renewal Date= ' + Convert(varchar(11),@dRenewal,@DateDisplayFormat) + '<br/>' --we can now use the html break character which will be rendered by all email clients set @VAR_Body = @VAR_Body + 'Existing Insurer= ' + @sExistingInsurer + '<br/>' set @VAR_Body = @VAR_Body + 'Existing Insurer ID= ' + Convert(varchar(10),@lExistingInsurerID) + '<br/>' 时,一切正常,并生成了js文件。

完整的greeter文件:

tsc greeter.ts

为什么我收到此提醒?怎么解决?我看了this question,但我认为它没有关联。

7 个答案:

答案 0 :(得分:35)

看起来这是Visual Studio Code中的一个错误。关于此问题,GitHub上存在一些问题,例如herehere。对这些问题的评论意味着这是一个问题,然后得到修复,并且在v1.12.1中再次成为一个问题。

看起来解决方案就是运行tsc --init来初始化文件夹中的tsconfig.json

答案 1 :(得分:1)

根据this article,在Typescript文件顶部添加以下简单行 导出{};

[index.ts]     导出{};

declare const signalR: any;
declare const moment: any;

答案 2 :(得分:1)

这可能是因为您的TypeScript项目没有tsconfig.json文件。 尝试创建一个tsconfig文件并编写默认的“ compilerOptions” 。 它为我工作。 我使用的带有默认代码的tsconfig.json文件是:

{
    "compilerOptions": {
        "module": "commonjs"
    },
    "exclude": [
        "node_modules"
    ]
}

有关VS TypeScript编译的更多信息,请参考 https://code.visualstudio.com/docs/typescript/typescript-compiling

答案 3 :(得分:1)

在我的情况下,如果文件不导入/导出任何内容,则不视为模块,并且VS Code假定所有文件都将串联在一起。您可以通过添加导入/导出来修复它。

我还继续设置tsconfig使其包含isolatedModules,以便获得更有用的错误消息。

{
    "isolatedModules": true,
}

答案 4 :(得分:1)

旧帖子,但希望这对某人有所帮助:

我写代码时遇到了这个问题:

function myFunc() { ... }
module.exports = {
    myFunc
}

我改用这种方式解决了这个问题:

export function myFunc() { ... }

答案 5 :(得分:0)

如果您在同一目录中同时包含src文件(打字稿)和已转译的文件(javascript),并在VS Code中打开javascript文件,则会收到错误消息。将已编译的文件输出到目录中,不会出错。使用--outDir标志: tsc --outDir ./dist greeter.ts

在VS Code 1.26.1版本中解决了此问题。生成tsconfig.json文件并不能使错误消失。

答案 6 :(得分:-2)

当我们打开file.ts和转换的file.js文件并执行TSC时,会发生此错误 请关闭已转换的file.js并重试。