声明js的基本类型
1.数字
let a: number = 2;
2.字符串
let aa: string = "22"
3.数组
(1) 数组元素: let b: number[] = [1, 2, 3];
(2) 数组泛型: let b: Array<number> = [1, 2, 3];
(3) const arr:(number|string)[]=[1,'1',2];
(4) type demo = {name: string, age: number};
const arr :demo[]=[{name: 'jack', age: 18}]
4. 元组
元祖类型允许表示一组已知元素数量和类型的数组,各元素的类型不比相同。
let x: [string, number];
x = ['hello', 10]
当访问x的下标的时候可以访问到该元素
5.枚举
枚举类型提供的一个便利是你可以由枚举的值得到它的名字,默认情况下,从0
开始为元素编号。 你也可以手动的指定成员的数值。
enum Directions {
Up,
Down,
Left,
Right
}
let p:string = Directions[1] // Down
6.Any
有时候,我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。 这些值可能来自于动态的内容,比如来自用户输入或第三方代码库。
这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用 any
类型来标记这些变量
简而言之,any可以跳过类型检查器的检查
let notSure = 4
notSure = "maybe a string instead"
notSure = true
notSure.toString()
notSure.toFixed()
7.Void
某种程度上说, void与any类型相反,他表示没有任何类型当一个函数没有返回值时,你通常会见到其返回值类型是 void
function warnUser ():void {
console.log('this is no return ')
}
声明一个void类型的变量没什么大用,因为你只能为它赋予 undefined 和 null:
let unusable: void = null = var unusable = null
8. null 和 undefined
TypeScript里,undefined
和null
两者各自有自己的类型分别叫做undefined
和null
。 和 void
相似,它们的本身的类型用处不是很大:
let u: undefined = undefined;
let n: null = null;
9.类型断言
当我们知道某个数据类型而ts不知道的时候,检测类型就会报错,这个时候就需要告诉检测类型我知道他是什么样的,听我的!有两种方法:
(1)尖括号法
let someValue: any = "hello"
let strLength: number = (<string>someValue).length
(2)as
let someValue :any = "hello"
let strLength:number = (someValue as string).length