基本数据类型
数字
const a:number=3;
字符串
const b:string="1";
数组
const c: number[] = [1, 2, 3];
const d: Array<number> = [1, 3];
const arr: any[] = [1, "33", true];
枚举
enum error {
blue = 3,
"orange",
}
const f: error = error.orange;
console.log(f); //输出4
tips
1.如果未赋值的上一个值是数字那么这个未赋值的值的是上一个值的值+1
2.如果未赋值的上一个值未赋值那么输出的就是它的下标
3.如果未赋值的上一个值的值是非数字,那么必须赋值
布尔类型
const g:boolean=true;
对象
const i: object = {};
undefined
常用于组合类型
let j: number | undefined;
null
let k: null;
viod
指定方法类型,表示没有返回值,方法体中不能return
function aa(): void {
console.log(1);
}
//如果方法有返回值,可以加上返回值的类型
function bb(): number {
return 1;
}
never
其他类型 (包括null和undefined)的子类型,代表从不会出现的值
let l: never;
//匿名函数并抛出异常
l = (() => {
throw new Error("111");
})();
任意类型
让参数可以是任何一种类型
let h: any = 1;
h = true;
h = "st";
函数
函数申明
function cc(): void {}
方法传参
function getUserInfo(name: string, age?: number, school: string = "清华大学") {
return `name:${name}--age:${age}--school:${school}`;
}
tips: ?代表这个参数可传可不传,不传就是undefined,也可定义个默认的值
函数承载
function reload(name: string): string;
function reload(age: number): string;
function reload(param: any): any {
return typeof param === "string" ? `我是:${param}` : `我的年龄:${param}`;
}
console.log(reload(18)); //年龄
tips: 被重载的方法,是没有方法体,可以根据参数的类型走其中一个方法并判断参数,但如果传入的参数类型不是任何被重载方法的参数类型就不允许通过。
第 1 个重载(共 2 个),“(name: string): string”,出现以下错误。
类型“never[]”的参数不能赋给类型“string”的参数。
第 2 个重载(共 2 个),“(age: number): string”,出现以下错误。
类型“never[]”的参数不能赋给类型“number”的参数