(一)Typescript 概述
Typescript 是 Javascript 的超集,Javascript 有的 Typescript 都有,Typescript 包含 Javascript
Typescript = type + script (在 Javascript 的基础上,增加了类型系统),使用typescript 可以避免项目因为类型导致的bug
(二)typescript的特点:
1. 编译性语言
2. 强类型的语言
3. 真正的面向对象的语言
1. 字符串类型(string)
文件 Hello.ts
var email:string = '197845@qq.com'
console.log(email)
在变量名后面 :加上改变量的类型string,即表示该变量是一个字符串~
运行 typescript 命令
tsc 文件名称
然后终端里面 tsc Hello.ts (运行ts文件),每次Hello.ts有改动,都要tsc Hello.ts重新编译一下~(tsc 会生成一个js文件)生成编译后的Hello.js~代码如下~
var email = '197845@qq.com';
console.log(email);
然后 node Hello.js ,终端输出197845@qq.com
如果定义的是string类型,但是赋值不是string,编译就会报错~
2. 字符串拼接~模版字符串(与es6相同)
var myEmail = `my email is ${email}`
console.log(myEmail)
3. 定义布尔值(boolean)
var isFlag:boolean = true
console.log(isFlag)
4. 定义数字类型(number)
var age:number = 123
console.log(age)
5. 定义数组
<>表示数组中每个的类型
var arr:Array<number> = [1 ,2 ,3]
console.log(arr)
还有一种写法:
var arr:number[] = [1, 2, 3]
还有数组中混合类型的
let arr:Array<(string | number )> = [1, 2, 'arr']
console.log(arr) // [1, 2, 'arr']
let my:(string | number)[] = [1, 2, 'arr']
console.log(my) // [1, 2, 'arr']
6. 枚举(从给定的值中赋值)
enum为关键字 sex为 给定的集合名称(自定义) {}里的值为给定的值~(自定义)
enum sex {
'man' = 'man',
'woman' = 'woman'
}
var itemSex:sex = sex.man
console.log(itemSex)
编译后的结果:
var sex;
(function (sex) {
sex[sex["man"] = 0] = "man";
sex[sex["woman"] = 1] = "woman";
})(sex || (sex = {}));
var itemSex = sex.man;
console.log(itemSex);
console.log输出结果:0
console.log(sex[0]) 输出 man
7. any任意数据类型
var a:any = 'qqqq'
a = 23
console.log(a) // 23
定义了any,在类型方面不会报错~不知道或者还没想好是什么数据类型的时候,可以用any~
8. void 函数返回值为空
function hello():void {
console.log('hello')
}
hello()
如果定义了函数返回值为空,但仍旧return,会报错,提示该函数返回值应该为空~
9. 函数有返回类型
可指定返回类型
function hello1():number {
return 'hello'
}
hello1()
指定函数返回值是number类型,如果要是返回 非number,则编译出错
10. undefined null
let b:undefined = undefined
let c:null = null
console.log(b,c)
11. 定义了未赋值
let a:number;