为什么Typescript认为符号“name”总是存在?

为什么Typescript认为符号“name”总是存在?,typescript,Typescript,我注意到,当我打算写someObject.name时,当我写name时,我的Typescript中的错误被编译器接受 作为测试,我尝试编译一个只包含console.logname的文件,tsc接受它。Typescript是否定义了一些全局符号 我使用的是Typescript 2.8.1,除了NPM本身和Typescript之外,没有安装任何全局软件包。是的,EcmaScript标准有一个默认库,比如ES2016。此库名为lib.es2016.full.d.ts,包含名称声明 在编辑器中,如果不仅

我注意到,当我打算写someObject.name时,当我写name时,我的Typescript中的错误被编译器接受

作为测试,我尝试编译一个只包含console.logname的文件,tsc接受它。Typescript是否定义了一些全局符号


我使用的是Typescript 2.8.1,除了NPM本身和Typescript之外,没有安装任何全局软件包。

是的,EcmaScript标准有一个默认库,比如ES2016。此库名为lib.es2016.full.d.ts,包含名称声明

在编辑器中,如果不仅仅是记事本,还包括Visual Studio代码,则可以从上下文菜单中选择“转到定义”。或者,您可以将鼠标悬停在name上方,然后查看实际的类型名称,它是never和const

这样做是为了限制对全局窗口名属性的访问:

谢谢-我应该想在VSCode中查找定义。问题链接也非常有用。现在,我在tsconfig.json中添加了lib:[esnext],这样Typescript就可以识别出我对名称的错误使用。