第一篇博客hjx@TOC
hjx第一篇博客测试
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。
概念描述
ts是js的超集。
一个ts文件里面的内容,一开头就是js脚本,没有什么标签。
写完一个ts文件之后,怎么执行呢,需要编译,编译方法:
执行tsc hello.ts编译成一个js文件然后用,这个有点类似于java的编译脚本。改完一个ts,不会自动更新对应的js,改完就得编译一次。
可以用的编辑器,webstorm,他和idea是一家的。
ts的最大特点:变量有类型!
本来js是弱类型语言,一个变量可以赋值多种类型的数据。这样存在一定的安全隐患,比如本来是个数字类型,赋值上string,后面使用的时候,可能就因为这一个地方而报错了。
举例子
let a:number; 这就定义了数字类型,后面如果赋值了其他类型,编辑器就会编译冒红;(报错内容:不能 assignable …)
此时如果用tsc去编译它,执行时虽然报错,但是仍然会编译成一个js文件。原因是,目前为了体现ts的容错性,这样更友好一点。
编译成js文件之后,let变成了var,这是因为对于任何版本的js都识别,兼容性更好,默认是编译成ES3版本的;
ts比js更大大降低了出错风险;
再举一个例子:
let c:boolean=true; // 声明时直接赋值
若不写类型,只要赋值了,就默认有类型了。这么说来,前面的boolean类型就显得多此一举了。只写let c=true;就能知道c是个布尔类型了。TS自动对变量进行类型检测,很智能。
函数的例子
js里面这样写:
function sum(a,b){
return a+b;
}
js不限制入参类型和个数。而ts,要限制的,不写也不编译冒红,但是会有风险,所以最好写;
加了类型,是这样的:
function sum(a:number, b:number):number{
return a+b;
}
上例子里,定义了入参类型,也有出参的类型;