/** * 基本数据类型:number string null undefined boolean * 引用数据类型:object(对象 数组 函数) * 校验数据类型的方法 * typeof instaceof Object.prototype.toString.call constructor */ // 变量 let a: number = 10; let b: string = '12'; let c: null; let d: undefined; let e: boolean = false; // let f = 12; // f = '12'; // any 任意类型 只声明未定义 默认相当于 隐性any let a1; a1 = 12; a1 = '12'; a1 = '哈哈哈'; // unknow 未知类型 显性写法 let a2:unknown; a2 = 12; a2 = '12'; a2 = false; a2 = 'heihei' // 区别 // a2 = a1; a1 = a2; let a3: string; // a3 = '20'; // a3 =a2; // a3 = a1; /** * unknow与any区别 * any可以给任意类型进行赋值 * unknow不可以给任意类型进行赋值 只能给any进行赋值 */ // if(typeof a3 === 'string') { // console.log("走进来") // } // 类型断言 告知浏览器当前值是什么类型 a3 = '哈哈'; a3 = '12' as string; // 格式: 变量名 = <类型>值 // 格式: 变量名 = 值 as 类型 // nerver 用来表示 永远不返回类型 不允许发出结果 只能反出爆粗 function fn1():never { // return 12; throw new Error() // return 12 } fn1(); // void 用来表示空的类型 function fn2():void { console.log("你好") // return 12; } fn2() export { };