热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么在typescript中声明了一个全局`name`变量,我可以避免使用它吗?

如何解决《为什么在typescript中声明了一个全局`name`变量,我可以避免使用它吗?》经验,为你挑选了1个好方法。

一位朋友重构了一些代码,并将一个name从函数顶级范围调用的变量的定义移动到了一个then体内.此变量在后续使用中then导致ReferenceError,因为name它不在范围内.

在我们看到typescript/lib.d.ts有以下减速之前,我们无法理解代码是如何通过编译的:

declare const name: never;

长话短说,我有两个问题.

    为什么name(以及length许多其他全局变量)默认添加到打字稿?

    从周围的代码来看,这似乎意味着要在浏览器中运行的项目,我们是一个node.js项目.我们可以选择不为我们添加这些声明吗?

Sebastian Se.. 8

这似乎是一个非常古老的浏览器行为.参考MDN两者name并且lengthwindow对象的属性.

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

https://developer.mozilla.org/en-US/docs/Web/API/Window/length

为了摆脱所有特定于DOM的声明,您可以相应地设置lib属性tsconfig.你可以看到这个页面上的所有选项.看看--lib国旗.

告诉TypeScript你的代码在Node.JS上运行的选项会很好.但它似乎尚未实现:https://github.com/Microsoft/TypeScript/issues/9466



1> Sebastian Se..:

这似乎是一个非常古老的浏览器行为.参考MDN两者name并且lengthwindow对象的属性.

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

https://developer.mozilla.org/en-US/docs/Web/API/Window/length

为了摆脱所有特定于DOM的声明,您可以相应地设置lib属性tsconfig.你可以看到这个页面上的所有选项.看看--lib国旗.

告诉TypeScript你的代码在Node.JS上运行的选项会很好.但它似乎尚未实现:https://github.com/Microsoft/TypeScript/issues/9466


推荐阅读
author-avatar
红烧大青虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有