类型:
同其他语言一样,有数字 , 字符串,布尔
主要多了any类型,任意类型
如果是一个普通类型,在赋值过程中改变类型是不被允许的:
let myFavoriteNumber: string = 'seven';
myFavoriteNumber = 7;
// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
但如果是 any
类型,则允许被赋值为任意类型。
let myFavoriteNumber: any = 'seven';
myFavoriteNumber = 7;
联合类型:
在定义变量类型时候,可对一个变量定义一个或多个类型,使用 | 分开
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
数组类型:
同其他一样定义
let fibonacci: number[] = [1, 1, 2, 3, 5];
可以加入泛型来定义数组中数据的类型或者使用任意类型的数组
let fibonacci: Array<number> = [1, 1, 2, 3, 5]; 只能有数字数据
let list: any[] = ['Xcat Liu', 25, { website: 'http://xcatliu.com' }];
函数声明
在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expression):
// 函数声明(Function Declaration)
function sum(x, y) {
return x + y;
}
// 函数表达式(Function Expression)
let mySum = function (x, y) {
return x + y;
};
输入多余的(或者少于要求的)参数,是不允许的。那么如何定义可选的参数呢?
与接口中的可选属性类似,我们用 ?
表示可选的参数:
需要注意的是,可选参数必须接在必需参数后面。换句话说,可选参数后面不允许再出现必须参数了
在使用联合类型时候使用一个类型的方法会报错
此时可以使用类型断言,将 something
断言成 string
:
function getLength(something: string | number): number {
if ((<string>something).length) {
return (<string>something).length;
} else {
return something.toString().length;
}
}
类型断言的用法如上,在需要断言的变量前加上 <Type>
即可。