72小时带你光速入门TypeScript - 基本数据类型从这篇文章开始,我们就算正式的踏入了Ts的大门。我们知道JS的
从这篇文章开始,我们就算正式的踏入了Ts的大门。我们知道JS的数据类型分为2类,一类是基本数据类型,一类是引用数据类型。接下来我们就看看这些数据类型在Ts里是如何进行约束的。
一、number
如果某个变量的值 对应的数据类型是number,那么我们应该使用如下写法:
let a:number = 1;
:
代表进行约束,number代表约束的类型。
二、string
这个也没啥好说的,写法如下:
let a:string = '1';
三、boolean
写法如下:
let a:boolean = true;
四、null 与 undefined
这2种类型比较特殊,它们不需要声明,它们可以给任意类型的变量进行赋值。
let name:string = 'hello world!';
name = undefined;
上面的代码就是最好的例子,虽然name变量是字符串类型的,但是这并不影响它可以被undefined赋值。
当然你要是想给特定的变量带上undefined或者null的类型约束,这也是可以的,就像下面这样:
let a:undefined = undefined;
let b:null = null;
但是你这么写它有啥意义呢?
这时候有的小伙伴又提出了质疑,上面的代码中,变量name明明是string类型的,但是它依然可以被赋值为undefined,我不能接受。有没有办法可以规避掉这个风险。
细细想来好像也是有一定道理,前端工程师最基本的职业素养就是“判空处理”。我们可以在tsconfig文件里将“strictNullChecks”置为true,代码如下:
{
"compilerOptions": {
"lib": ["es2015"],
"outDir": "./dist",
"strictNullChecks": true
}
}
这样当我们再给name变量赋值为undefined或者null时,编译就会出错,符合我们的预期。
五、object
这跟string、number并无差距,写法如下:
let a:object = {};
经过上面的约束,a只能是对象,至于对象里面的key是什么类型的,key对应的value是什么类型的,这种写法它约束不了,所以这种写法是宽泛的约束。
六、array
2种写法,分别如下代码:
let a:number[] = [1, 2, 3];
let a:Array<number> = [5, 6, 7];
2种写法都可以,具体想使用哪个全看自己心情。上面的这2个写法都是用来告诉Ts,变量a是一个数组,数组的每一项都是number类型的。
如果有的小伙伴JS用的非常顺手,切换Ts的时候就会感觉限制特别多,就比如说这个数组,如果你不想限制每一项的数据类型,你可以直接使用any,这是ok的,就像下面这样:
let c:any = [1, true, '3'];
最后
这篇文章到这里也算是结束了,我们讲解了JS里常用的数据类型在Ts里是如何进行约束的。当然TS里还存在很多的类型检查,这篇文章也没有讲到,但是整个专题肯定会给大家讲到。学习Ts的过程,由易到难是一个很好用的过程,最后,希望我的文章能够对你有帮助,我们下期再见啦~~
转载自:https://juejin.cn/post/7360890020120952868