安装
-
npm config set registry https://registry.npmmirror.com
-
npm install -g typescript
-
安装成功后
-
tsc -v 查看版本号
-
tsc 文件名:转换成js
-
node文件名 :运行
-
基础类型
不写类型或者写any类型时,会自己判断究竟是哪种类型
任意类型
any
-
any可以省略
-
实例
let a = 1
数字类型
number
-
实例
let binaryLiteral: number = 0b1010; // 二进制 let octalLiteral: number = 0o744; // 八进制 let decLiteral: number = 6; // 十进制 let hexLiteral: number = 0xf00d; // 十六进制
字符串类型
string
-
实例
let uname: string = "Runoob"; console.log(uname)
布尔类型
boolean
-
实例
let flag: boolean = true;
数组类型
数组中一般为为数字,后面不跟类型的话,会自主判断
-
实例
let arr: number[] = [1, 2]; let arr:number[]=[1,2,'a'] //会报错,因为arr中的a不属于number let arr=[1,2,'a'] //ts将没有意义,但不会报错
元组
let arr:number[]=[1,2,'a']如何解决不会报错,可以设置多个
let x: [string, number,number];
let x: [string, number]; x=['a',1] //正常 x=[1,'a'] //报错
枚举
相当于自己定义的数据类型,输出的是下标
enum Color {Red, Green, Blue}; let c: Color = Color.Blue; console.log(c); // 输出 2
enum S {代发货=5,待收货=10} var s:S=S.代发货 console.log(S) //输出为: { "5": "代发货", "10": "待收货", "代发货": 5, "待收货": 10 } console.log(s) //输出5
void
用于标识方法返回值的类型,表示该方法没有返回值。
没有return时使用,以前会输出undefined
function hello(): void { alert("Hello Runoob"); } 与函数一样使用
null
undefined
never
never 是其它类型(包括 null 和 undefined)的子类型,代表从不会出现的值。
变量声明
类型断言
当 S 类型是 T 类型的子集,或者 T 类型是 S 类型的子集时,S 能被成功断言成 T。
var str='1' function a():string{ return str } var str2:number=a() as any as number //得先到any才能到number console.log(str2)
变量作用域
三种:全局、类、局部
var global_num = 12 // 全局变量 class Numbers { num_val = 13; // 实例变量 static sval = 10; // 静态变量 storeNum():void { var local_num = 14; // 局部变量 } } console.log("全局变量为: "+global_num) console.log(Numbers.sval) // 静态变量 var obj = new Numbers(); console.log("实例变量: "+obj.num_val)
类中的变量本来要new类之后才可以用
静态的变量直接可用,不用new
Numbers.sval = 10; // 静态变量 var obj = new Numbers(); console.log("实例变量: " + obj.num_val); //局部变量
运算符
加法正常使用(也可以字符串连接),乘法必须转换成数字
-
且运算符得到的是最后一个值
找到一个假就停止
var r=1&&undefined&&false console.log(r) //undefined var r=1&&2&&false console.log(r) //false var r=1&&2&&true console.log(r) //2 var r=1&&2&&5 console.log(r) //5
-
或运算符
找到一个真就停止
var a=1&&2&&false console.log(r) //1
条件语句
if:判断会自动将括号中的判断成boolean值,来进行执行与否
var num:number = 12; if (num % 2==0) { console.log("偶数"); } else { console.log("奇数"); }
循环
for 循环需要添加一个number 声明
var num:number=1 var i:number; for(i=0;i<5;i++){ num += i } console.log(num) // 输出11
for in 循环中
var j; var n = "a b c"; for (j in n) { console.log(n[j]); } //j是下标