TypeScript-变量、基本类型和运算符

基本类型

基本类型有booleannumberstringarrayvoid。所有类型在TypeScript中,都是一个唯一的顶层的Any Type 类型的自类型。any关键字代表这种类型。

类型 声明方式
boolean var isDone:boolean=false
number var height = 6;
string var name:string=”bob
array var list:number[]=[1,2,3]
enum enum Color {Red,Green,Blue}
any var notsure:any = 4;notsure = “maybe a string instaed”; notsure = false;

在TypeScript中,我们不能把null或undefind当作类型使用。

1
2
var testVar : null;//错误,类型错误
var testVar : undefined;//错误,找不到undefined

varletconst

在TypeScript中,当声明一个变量时,可以使用var、let和const关键字

1
2
3
var mynum = 1;
let isValid:boolean = true;
const PI : number = 3.141592654;

联合类型

1
2
3
var path :string[]|string;
path = '/temp/log.xml';
path = ['/temp/log.xml','/temp/error.xml'];

类型别名

TypeScript允许用type关键字声明类型别名

1
2
3
4
type PrimitiveArray = Array<string|number|boolean>;
type MyNumber = numbe;
type NgScope = ng.IScope;
type Callback = () => void;

函数

1.具名函数

1
2
3
4
5
6
7
function greet(name?:string):string{
if(name){
return "Hi," + name;
}else{
return "Hi!";
}
}

2.匿名函数

1
2
3
4
5
6
7
var greet:(name?:string) => :string = function(name:string):string{
if(name){
return "Hi," + name;
}else{
return "Hi!";
}
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Character{
fullname:string;
constructor(firstname:string,lastname:string){
this.fullname = firstname + " " + lastname;
}

greet(name?:string){
if(name){
return "Hi!" + name + "!my name is " + this.fullnamel;
}else{
return "Hi! my name is " + this fullname ;
}
}
}
var spark = new Character("Jacob","Keyes");
var msg = spark.greet();//"Hi! my name is Jocob Keyes";
var msg1 = spark.greet("Dr. Halsey");//"Hi!Dr. Hasey! my name is Jacob Keyes"