ts的自学之路(未完)

    技术2025-11-16  18

    ts的好处:

    代码出现类型不对或者其他错误后能立刻显示出来。在写对象的方法的时候能自动补全等等........

    Ts的安装:

    需要安装node 运行环境和ts,安装好后通过tsc demo.ts  来对ts文件进行编译,编译出一个js文件后通过 node demo.js 来运行得出结果。当然这个流程是已经比较复杂,可以安装npm install -g  ts-node 来辅助编译。 ts-node demo.ts

    TS基础语法

    静态类型比动态类型的好处在于剥夺它的灵活性,使它更具有规范性。

    静态类型

    基础类型:let teacherName: number = 12 ; let teacherName: string = ‘我是字符串’ ;

    let teacherName: number | string = ‘现在是字符串以后有可能是数值类型’

    对象类型:let teacherName: { name: string,age: number } = { name: ‘张三’, sex: 15};

    数组类型:let teacherName: number[] = [1,2,3];let teacherName: ( number | string )[] = [1,’2’] ; let teacherName:  { name: string,age: number }[] = [{name: ‘张三’,age: 15}] ,如果觉得数组对象的类型定义比较麻烦还可以用类型别名的方式(type alias) ,  type User = {  name: string,age: number };   let teacherName:  User[] = [{name: ‘张三’,age: 15}]

    函数类型:let teacherName: () => number = ()=>{ return 32 }。

    类型推断及注解

    类型推断:由ts 进行数据类型的推算得出类型(函数的形参不能给推算出)

    类型注解:由程序员来定义变量的类型

    三、函数类型

    函数结构: let teacherName = firsName(1,”2”)        

    Function firsName (i: number, s: string ): number { return ‘这里需要返回number 类型’ }

    Void类型:  function firsName(): void   ;  代表没有返回值

    Never类型: 用于抛出错误,它永远无法让那个函数体执行完

    interface 接口

    在对象类型重复性比较高的时候,可以定义接口来使用。例如:interface User { name: string ,age: number }          function A ( user: User ): { name: string, age: number } {} ,看到这样就觉得跟类型别名有点像,区别不大。当有一个类型不明确是否可有可无的情况下 ,可以在接口 类型里面写 age?: number ,这样就不会报错,还可以写为[propName: string] :any,意思是允许任意添加属性个数

    注意:1、当函数通过字面量的形式传递对象值的时候,ts就会进行强效验,接口里面不能写 age?: number,如果需要就只能写 [propName: string] :any。2、接口可以继承方法,在原来已有的类型方法上进行继承。Interface Teacher extends User{}

    Processed: 0.029, SQL: 10