无法重新声明块范围变量&name;#name;#39;在TypeScript中

时间:2017-11-28 13:54:43

标签: typescript

嗨,我正在学习打字稿。

我的代码中有。

var name:string="Hello world";
console.log(name);

编译时我收到此错误。

error TS2451: Cannot redeclare block-scoped variable 'name'.
index.ts(4,5): error TS2451: Cannot redeclare block-scoped variable 'name'.

有人可以形容我为什么会收到此错误吗?

3 个答案:

答案 0 :(得分:10)

CASE WHEN [DATA 1] = 1 THEN ('A') WHEN [DATA 1] = 2 THEN ('B') WHEN [DATA 1] = 2 THEN ('C') ELSE ('HELP') END 属性在name对象上定义:

window

https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts#L17226

您需要为变量提供一个新名称:

interface Window extends EventTarget, WindowTimers, WindowSessionStorage, WindowLocalStorage, WindowConsole, GlobalEventHandlers, IDBEnvironment, WindowBase64, GlobalFetch {
    ...
    name: string;
    ...
}

答案 1 :(得分:2)

您的变量name已在同一代码块中的某处声明。这是不允许的。

这正是错误消息的含义。

原因是,您尝试在全局范围内声明此特定变量,此处name已由于某些技术原因而定义,有关详细信息,请参阅:https://github.com/Microsoft/TypeScript/issues/9850

(谢谢@betadeveloper

答案 2 :(得分:0)

您可以在文件的开头添加export{}