typescript 基础随笔1----基础类型
TypeScript是JavaScript的一个超集
TypeScript最重要的一个特点就是可以定义静态类型,JavaScript是一个弱类型的语言,通过TypeScript的定义静态类型,可以将变量强类型化
在TypeScript静态类型分为两种,一种是基础静态类型,一种是对象类型
1.基础静态类型
number,string,array,enum,any,boolean
| 类型 | 描述 |
| boolean | 只有两个值 true和false |
| number | 所有浮点数都是number |
| string | 表示文本 |
| array |
表示数组,声明方式有两种 1. var list :number[] = [1,2,3]; 2. var list :Array<number> = [1,2,3]; |
| enum |
enum为了给一个数自己和更友好的命名。 enum类型中的成员默认从0开始,也可以手动设置成员中的值来更改这种默认行为 enum Color {Red,Green,Blue}; var c:Color = Color.Green; |
| any |
any 表示任意JavaScript的值 var notSure :any = 4; notSure = 'maybe a string instead'; notSure = true;//合法行为定义为一个布尔类型 也可以定义一个混合类型的数组 var list:any[] = [1,'free',true]; list[1] = 100; |
| void |
在某种程度上any的对立面是void,即所有类型都不存在的时候,你会在一个函数没有返回值时看到void function sayHello ():void{
console.log('hello')
}
|
在JavaScript中原始类型包括undefined和null,默认情况下null和undefined是所有类型的子类型,也就是可以赋值给其他类型
let u: undefined = undefined; let n: null = null;
代码实例如下:
let num:number; num=undefined; num=null;
但是不能够赋值给never类型。
2.对象类型
对象类型的集中形式:
2.1对象类型
const person:{
name:string,
age:number
}
2.2数组类型
const girls : String [] = ['小红','小英','小兰']
多重类型的数组,比如有数字,又有字符串时
const arr: ( number| string )[] = [1,'string',2]
数组中的对象类型的定义
const girls:{ name:string, age:number }[] = [ { name:'小红', age:18 }, { name:'小兰', age:19 } ]
typescript 提供了一种类型别名简化这种写法
type girl = {name:string,age:number} const girls:girl[] = [ { name:'小红', age:18 }, { name:'小兰', age:19 } ]
或者用class来代替
class girl{name:string,age:number} const girls2:girl[] = [ { name:'小红', age:18 }, { name:'小兰', age:19 } ]
2.3类类型
class Person{} const hong: Person = new Person()
2.4函数类型,
const hong: ()=> string =()=>{return '小红'}
浙公网安备 33010602011771号