热门标签 | 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也暗示了在这个答案中性能的提升。


推荐阅读
  • 概况:我要怎样o找到设备o位置?o感应动作?o感应设备o方位?o独特地定义设备o? ... [详细]
  • javac-Java编程语言编译器的使用文档推荐查看本文HTML版本结构javac[options][sourcefiles][files]参数可按任意次序排列。options命令 ... [详细]
  • 我有一个数组存储任务信息.每个任务还​​有一个依赖于它的taskId数组.输入letinputArr[{id:1,dependOnTasks:[2,3]},{id:2,depend ... [详细]
  • Lock和synchronized该如何选择
    本文主要介绍关于Java,锁机制的知识点,对【【Java进阶】synchronized底层如何实现?什么是锁的升级、降级?】和【Lock和synchronized该如何选择】有兴趣的朋友可以看下由【刘 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 报错现象:从mysql5.5数据库导出的数据结构放到mysql5.7.10报错create_timetimestampNOTNULLDEFAULT‘0000-00-0 ... [详细]
  • 小编给大家分享一下TypeScript2.7有什么改进,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收 ... [详细]
  • DimmyCompasnewMySTAComponent()PublicSubPage_Load()myComp.Name=BobEndSub  首选机 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了javascriptisObjDiff相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 1、问题背景假如,项目中遇到这样一个问题:利用FusionCharts中的JSON格式拼接双轴图,并将JSON字符串转换成JSON对象传输到前台,在页面上展示出来。2、设计源码 ... [详细]
  • 加密你的php源代码,加密你的php源代码错误
    本文目录一览:1、PHP-php源代码加密是怎么做到的 ... [详细]
  • 『每周译Go』YYDS! Go 如何编写简单的内存键值数据库
    从Postgres到Redis,再到Prometheus,我们都使用并从事过各种数据库的开发。我花了很多时间来阅读其中一些数据库的源代码, ... [详细]
  • 视频鉴黄提供视频内容检测,识别视频中是否存在色情内容。支持存储在七牛云bucket(支持华东、华北和华南bucket)或非七牛云bucket中的视频进行视频鉴黄。支持 ... [详细]
  • 首先请求进入DispatcherServlet由DispatcherServlet从HandlerMappings中提取对应的Handler此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:HandlerAdapter拿到对应HandlerAdapter时,这时候开始调用对应的Handler处理业务逻辑了(这时候实际上已经执行完了我们的Controller)执行完成之后返回一个Mo ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
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社区 版权所有