Typescript 无法重新声明块作用域变量';名称';打字

Typescript 无法重新声明块作用域变量';名称';打字,typescript,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'. 有人能告诉我为什么会出现这个错误吗?您的变量name已经在同一代

嗨,我在学打字

我的密码里有

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'.

有人能告诉我为什么会出现这个错误吗?

您的变量
name
已经在同一代码块的某个地方声明过了。这是不允许的

这正是错误消息的含义

原因是,您试图在全局范围内声明此特定变量,此处由于某些技术原因已定义了
name
,有关更多详细信息,请参阅:


(谢谢)

窗口
对象上定义了
名称
属性:

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

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

var myname = "Hello world";
console.log(myname);

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

您试图在哪个上下文中执行此代码?错误似乎表明您在scope.No中已经有一个名为
name
的变量。它在浏览器-window.name中是一个全局变量,在typescript中,他们决定将其声明为常量,请参阅本期感谢您的见解,我编辑了我的答案,添加了这个特定案例的原因。@Pac0 Thanx Brother:-)您能解释一下为什么要这样做吗。@rahul,
export{
使其成为一个模块,因此它有自己的模块作用域,因此可以在没有类的情况下使用
名称。看见