实例:
var uname:string = “leo”;
var age:number = 25;
//对应js
var uname = “leo”;
var age = 25;
TypeScript 遵循强类型,如果将不同的类型赋值给变量会编译错误,而JavaScript则不会,因为她是弱类型语言,如下实例:
var num:number = “leo” // 编译错误
//对应的js
var num = 100
num = “leo” // 编译不报错
类型推断
当类型没有给出时,TypeScript 编译器利用类型推断来推断类型。如果由于缺乏声明而不能推断出类型,那么它的类型被视作默认的动态 any 类型。
var num = 100; // 类型推断为 number
num = “leo”; // 编译错误,相当于上例 var num:number = “leo”
变量作用域
TypeScript 有以下几种作用域:
全局作用域 − 全局变量定义在程序结构的外部,它可以在你代码的任何位置使用。
类作用域 − 这个变量也可以称为 字段。类变量声明在一个类里头,但在类的方法外面。 该变量可以通过类的对象来访问。类变量也可以是静态的,静态的变量可以通过类名直接访问。
局部作用域 − 局部变量,局部变量只能在声明它的一个代码块(如:方法)中使用。
如以下例子:
var global_num = 10 // 全局变量
class Person {
age = 18; // 实例变量
static score = 100; // 静态变量
eat():void {
var food = ‘apple’; // 局部变量
}
}
console.log("全局变量为: " + global_num)
console.log(Person.score) // 静态变量,直接通过类名访问
var person = new Person();
console.log("实例变量: " + person.age)
TypeScript的运算符、条件语句、循环与JavaScript基本一致。
TypeScript函数
function function_name()
{
// 执行代码
}
//调用函数
function_name()
函数返回值
TypeScript的函数返回值与JavaScript的函数返回值略有不同。TypeScript的函数返回值的格式:
function function_name():return_type {
// 语句
return value;
}
//与js相比,ts的函数返回值需要指定 return_type返回值的类型。
如下实例:
//ts
function greet():string { // 返回一个字符串
return “Hello World!”
}
//js
function greet() {
return “Hello World!”
}
带参数函数
语法格式如下所示:
function func_name( param1 [:datatype], param2 [:datatype]) { //datatype为参数类型
//执行代码
}
实例:
//ts
function add(x: number, y: number): number { //函数返回值为number,参数的数据类型也为number
return x + y;
}
//js
function add(x, y) {
return x + y;
}
可选参数和默认参数
可选参数,在 TypeScript 函数里,如果我们定义了几个参数,则我们必须传入几个参数,除非将这些参数设置为可选,可选参数使用问号标识 ?。
function fullName(firstName: string, lastName: string) { //调用函数必须传入两个参数,否则报错
return firstName + " " + lastName;
}
let name1 = buildName(“leo”); // 错误,缺少参数
let name2 = buildName(“leo”, “lion”, “gao”); // 错误,参数太多了
let name3 = buildName(“leo”, “lion”); // 正确
修改为可选参数之后
function fullNa