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

在打印文件中“使用严格”?-“UseStrict”neededinaTypeScriptfile?

IveseenpostsregardingwheretoputtheusestrictlineinaTypeScriptcodefile.Myquestion

I've seen posts regarding where to put the "use strict" line in a TypeScript code file. My question is, why have it at all?

我看到过一些关于在打字稿代码文件中放置“使用严格”行的文章。我的问题是,为什么要拥有它?

Since TypeScript is already a strongly typed language, what does "use strict" add?

既然打字稿已经是强类型语言,那么“使用严格”添加什么呢?

2 个解决方案

#1


66  

Updates

更新

  • TypeScript 1.8+: "use strict"; is emitted in modules (Read more).
  • 打印稿1.8 +:“使用严格的”;在模块中释放(多读)。
  • TypeScript 2.1+: --alwaysStrict compiler option parses all files in strict mode and emits "use strict" at the top of all outputted files (Read more).
  • ——永远严格的编译器选项以严格的模式解析所有文件,并在所有输出文件的顶部发出“使用严格”(请参阅更多)。

You can find a list of some examples by searching TypeScript's tests for "in strict mode".

通过搜索“在严格模式下”的打字稿测试,您可以找到一些示例的列表。

Here's some examples of code that will only throw a compile time error when you "use strict";:

这里有一些代码示例,当您“使用严格”时,它们只会抛出编译时间错误;

// future reserved keyword not allowed as variable name
var let,
    yield,
    public,
    private,
    protected,
    static,
    implements;

// "delete" cannot be called on an identifier
var a;
delete a;

// octal literals not allowed
03;

There are a few more examples where "use strict"; would throw an error only at runtime. For example:

还有一些“使用严格”的例子;将只在运行时抛出错误。例如:

"use strict";
delete Object.prototype;

Personally, I don't find it all that useful at preventing me from making mistakes in TypeScript and the additional noise it adds to a file makes me not bother writing it. That said, starting in TS 2.1 I'll enable the --alwaysStrict compiler option because it adds the slight additional strictness without any code maintenance overhead.

就我个人而言,我觉得这并不能阻止我在打字稿中出错,而且它给文件添加的额外噪音让我懒得去写它。也就是说,从TS 2.1开始,我将启用——永远严格的编译器选项,因为它增加了一点额外的严格性,没有任何代码维护开销。

#2


9  

For my money, yes, "use strict"; should be included in TypeScript files.

对于我的钱,是的,“使用严格”;应该包含在打字稿文件中。

Disregarding the compile time effects of "use strict"; on Typescript, there is likely a runtime impact when the generated Javascript is executed:

不考虑“使用严格”的编译时间效应;在打字稿上,当生成的Javascript执行时,可能会有运行时的影响:

  • MDN identifies performance improvements in avoiding boxing this in function calls, and the removal of the function.caller and function.arguments properties.

    MDN识别性能改进,避免在函数调用中装箱,以及删除函数。调用者和功能。参数属性。

  • Jeff Walden of Mozilla has also hinted at opportunities for performance gains in this answer.

    Mozilla的Jeff Walden也暗示了在这个答案中性能的提升。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 本文详细探讨了JavaScript中的闭包与柯里化技术,这两者是函数式编程的重要组成部分,对提升代码的灵活性和可维护性具有重要作用。 ... [详细]
  • 我有这种ajax$.ajax({type:"POST",url:"bee_sesi_edit.php&# ... [详细]
author-avatar
l夜幕下的流星雨l
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有