15. TypeScript 配置文件-初识 compilerOptions 配置项

目录
文章目录隐藏
  1. removeComments 属性
  2. strict 属性
  3. noImplicitAny 属性
  4. strictNullChecks 属性
  5. ts-node 遵循 tsconfig.js 文件

这节我们主要学习一下compilerOptions配置项,它是告诉 TypeScript 具体如何编译成js文件的,里边的配置项非常多,这节我们先来讲几个简单的配置项,目的是让你熟悉compilerOptions的使用方法。

removeComments 属性

removeCommentscomplerOptions里的一个子属性,它的用处是告诉 TypeScript 对编译出来的js文件是否显示注释(注解)。比如我们现在把removeComments的值设置为true,就是在js中不显示注释。

我们把上节文件没用的Demo2.ts和生成的 JS 文件都删除掉,只留Demo.ts文件,然后再Demo.ts文件里,加入一个注释。

// I`m mybj
const person: string = "mybj";

写完注释后,直接再终端Terminal里,输入tsc,输入完成后,很快就会生成一个demo.js文件,打开后会看到下面的代码。

"use strict";
var person = "mybj";

你写的注释并没有编译到demo.js里。如果我们反之,把removeComments的值,设置为false,这时候demo.js里就会有注释内容了。

"use strict";
// I`m mybj
var person = "mybj";

strict 属性

strict属性如果设置为true,就代表我们的编译和书写规范,要按照TypeScript最严格的规范来写,如果我们把这个设置为false或者注释掉,意思是我们可以对设置一些不严格的写法。

noImplicitAny 属性

noImplicitAny属性的作用是,允许你的注解类型 any 不用特意表明,只听概念很难理解。这就是看我视频的一个好处,如果你只看官方 API,你可能要迷糊一阵啥叫允许你的注解类型 any 不用特意表明,这就是每个汉字我都认识,连在一起就不知道啥意思的最好诠释。

为了更好的说明,我们举个例子,在demo.ts里,删除刚才的代码,然后写一个方法,方法的参数我们设置成任意类型(any)。

function mybj(name) {
  return name;
}

这时候我们的TypeScript是进行报错的,我们用tsc编译也是报错的。这就是因为我们开启了strict:true,我们先注释掉,然后把noImplicitAny的值设置为false,就不再报错了。

如果设置为noImplicitAny:true,意思就是值就算是 any(任意值),你也要进行类型注释。

function mybj(name: any) {
  return name;
}

你可以简单的理解为,设置为 true,就是必须明确置顶 any 类型的值。

strictNullChecks 属性

我们先把strictNullChecks设置为false,它的意思就是,不强制检查 NULL 类型。我们举个例子,让你能一下子就明白,还是删除demo.ts里的代码,然后编写代码:

const mybj: string = null;

代码写完后,你会发现这段代码是不报错的,如果是以前,一定是报错的,这就是我们配置了“不强制检验 null 类型”。如果你设成strictNullChecks:true,这时候就报错了。

ts-node 遵循 tsconfig.js 文件

有的小伙伴问我了,tsc fileName 是没办法遵循tsconfig.js文件的,那ts-node是否遵循?

这里直接告诉你答案,ts-node是遵循的,感兴趣的可以自行试一下。

这节我们就是简单的认识一下compilerOptions属性的配置,其实这些你只要掌握方法,并不需要记忆,我也是记不住每一项是干嘛的,用的时候会查 API 就可以了。下节我们继续学习配置文件。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 15. TypeScript 配置文件-初识 compilerOptions 配置项

发表回复