嗨,我正在学习打字稿。
我的代码中有。
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'.
有人可以形容我为什么会收到此错误吗?
答案 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{}
。