TypeScript学习之基础类型【学习1】

181 阅读3分钟

前言:

as we all know,JavaScript中并没有特定的为变量或者函数指明类型,这是因为JS没有变量类型的说法,使用typeof运算来判断的是JS变量值的类型,然而这样就可能会让我们不断的改变一个变量的值的类型,这样或许会然我们滥用这一特性,导致代码的可读性和可维护性差,因此出现了typescript,所以站在本人的角度,typescript就是有类型的脚本语言,当然typescript是始于js、终于js的【其实呢,typescript是JavaScript的超集,即一种拓展】

正文:

学过Java/C语言/C++的人都知道一个变量如果声明了类型,那么这个变量就只能拥有属于它自己类型的值,如果直接赋值为其他类型就会存在着错误(这里抛开了类型转化哈)。所以typescript也就给JavaScript拓展了这一项强制的规则,让JavaScript看起来很‘规范’。 【从这里开始typescript就简写ts,javascript就简写为js,你懂的】

一、ts的基础数据类型有

1. 布尔值   boolean      如, let isTrue:boolean = true;
2. 数字     number       如, let num:number = 15;
3. 字符串   string       如, let name:string = 'jake';
4. 数组     []或者Array<元素类型>
            如 let arr:[] = [1,2,3] 或者 let arr2:Array<number> =[4,5,6]
5. 枚举     enum
            如 enum Baby { baby1,baby2,baby3};  let ybaby:Baby =  BaBy[1]
6. 元组类型  主要是使用[类型1,类型2,...]
            如 let person:[string,number];  person=['jake',23]
6. 任意类型 any   如: let say:any = 'hi'; say = 2;
7. 无类型   void  如: function fun():void{console.log('xxx')}
8. null 和 undefined类型 //学过js的一看就懂
                  如: let nu:null = null; let un:undefined = undefined;
9. 不存在值的类型 never类型  
    官方解释“never类型表示的是那些永不存在的值的类型。 
    例如, never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式
    或箭头函数表达式的返回值类型; 变量也可能是never类型
    ,当它们被永不为真的类型保护所约束时。”
    如:function error(message: string): never {
            throw new Error(message);
        }
10. 对象类型 object类型 如:let person:object = {name:'jake',age:23}

特别说明:null,undefined,never是任意类型的子类型

二、 变量定义和函数定义

基础类型说完,说说ts的变量定义或者函数定义格式如下:

  • 变量定义 var 变量名:变量的类型/let 变量名:变量的类型/const 变量名:变量的类型,
   //栗子
   var n:number;
   number = 3;
   
   //也可以
   const num:number = 3; 
   let num2:number = 3;
  • 函数定义
function funcName(参数名:参数类型...):返回类型{
   return 'ok'
}
  • 特别说明,如果您没有未变量或者函数指定类型或者是返回类型,那么ts就会根据推断来给你默默的指定一个类型
 // ts的推断来给你指定类型
 var num = 3;
 num = 'love you' // Type '"love you"' is not assignable to type 'number'.
 //这就是推断!你的num被指定为number类型的了,所以不能够赋值为‘love you’字符类型