一、类型 字符串型、数字类型、布尔值、数组、元组、枚举、任意类、null 和 undefined、never类型、函数
1、字符串型 只能赋值字符串
let str:string = "nihao ts"
let str1:string = "nihao ts"
2、数字类型,所有数字都是浮点数,支持十进制、十六进制、二进制和八进制字面量
let aa:number = 111
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
3、布尔值 只能赋值布尔型值
let bb:boolean = false
4、array数组
let arrNumber:number[] = [1,4,5,6]
let arrString:string[] = ['1111','str']
let arrAny:any[] = ['123','str',false,1,4,5,6]
let arr1:Array<number> = [11,44,66,88]
let arr2:Array<string> = ['rr','ii','kk']
5、元组类型(tupe) 属于数组中一种
let arr:[string,number,boolean] = ["ts",1,false]
6、枚举类型(enum) 对JavaScript标准数据类型的一个补充 枚举类型可以为一组数值赋予友好的名字。
enum Flag{success = 1,error = 1}
let f:Flag= Flag.success
enum Color {Red, Green, Blue = 5}
let c: Color = Color.Green;
console.log(c)
console.log(Color.Blue)
7、任意类型 (any),不规定类型,可以赋值各种类型,对数组的定义也是可以的
let num:any = 123
num = 'str'
num = true
let list: any[] = [1, true, "free"];
list[1] = 100;
8、null 和 undefined:默认情况下null和undefined是所有类型的子类型,可以把 null和undefined赋值给其他类型的变量。可以其他类型的值赋值为undefined null 赋值给undefined null只能是对应的undefined null类型
let u: undefined = undefined;
let n: null = null;
let nums:string | undefined | null
console.log(nums)
nums = 'str'
console.log(nums)
9、void 类型,表示没有任何类型,一般用于一个函数没有返回值时的时候
function add():void{
}
10、never类型,是任何类型的子类型,也可以赋值给任何类型 表示永不存在的值的类型
let nev: never;
nev=(()=>{
throw new Error('错误')
})()
11、函数定义
function fly():string{
return 'fly'
}
fly()
let fly2 = function (): number{
return 123
}
fly2()
function fly3(tobegin: string, toend: string):string{
return tobegin
}
fly3('北京','上海')
let fly4 = function(tobegin: string, toend: string):string{
return tobegin
}
fly4('广州','揭阳')
function fly5():void{
}
fly5()
function fly6(tobegin: string, toend?: string):string{
return tobegin
}
fly6('广州','揭阳')
fly6('广州')
let fly7 = function(tobegin: string, toend: string ='佛山'):string{
return tobegin
}
fly7('广州','揭阳')
fly7('广州')
function sum(...result:number[]):number{
let total = 0
result.forEach( item=>{total += item})
return total
}
sum(1,2,99999,789)
function getUserInfo(age:number):number
function getUserInfo(name:string):string
function getUserInfo(name:string,age:number):string
function getUserInfo(str:any):any{
if(typeof str==='string') {
return '我的名字是'+str
} else {
return '我的年龄是'+str
}
}
setTimeout(() => {
}, 1000);
|