学习之路~总结

37 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

学习ts语法总结部分

函数重载:函数名称相同,但参数不同的函数;
参数不同:·参数类型不同,·参数个数不同。
tip:·实现了函数重载的函数体不能直接调用,必须匹配到某一个重载函数,否则就会报错
函数重载解决了参数为联合类型时,不能针对某一个类型进行操作,ts编译器会认为联合类型不能使用某一个类型的运算,会报错,在函数体内针对不同数据类型进行不同运算就需要些if判断进行类型缩小。才能使用特定的方法。
抽象类abstruct:
·抽象类不能被实例(防止new之后直接调用抽象方法,因为抽象方法没有实现,会造成不安全使用)
·抽象方法必须被子类实现,否则子类也是一个抽象类(多态,屏蔽,写在自己的原型链上,屏蔽了父类的方法,因为父类没有实现,只是一种规范,若子类不实现,**子类.此方法()**其实仍是调用父类的方法,因为父类未实现所以,会造成不安全使用)\

interface和type区别:

·interface可以定义重名接口,最终结果会结合在一起形成类型约束。
·type不能定义重名类型别名
class类可以implements实现接口
enum枚举类型,写的是常量其实switch匹配是按数字进行匹配的。

泛型:实现了类型(可以是函数可以是对象)的参数化,可以不用写死类型,而是写一个占位符,显示传递,和隐式传递。
·需要调用者传进来参数类型 调用者<类型>(参数,参数)
·泛型参数可以有多个<T,O,E>
·泛型接口使用时:接口名<类型>

模块化开发:

命名空间namespace: export namespace Time{ export const a = "hello typescript" },命名空间里的东西默认只能在内部使用,外部使用需要导出。
·主要解决命名冲突问题
类型查找:d.ts文件主要用来声明类型
·声明函数-变量-类 declare let a:string;
·声明模块 declare module ‘模块名’{}
·声明文件
·声明命名空间 declare namespace ${}命名空间不需要导入