摘要:
交叉类型 又是TS的一个骚操作。他可以把多个类或接口,合并他们的所有属性和方法为一个新的类型: interface PersonA{ name: string; } interface PersonB{ age: number; sayHi(): void; } type Person = Pers 阅读全文
摘要:
class类型 class类型,和Java差不多。 class Person { name: string; age: number = 0; } let person = new Person(); 构造函数 class Person { name: string; age: number = 0 阅读全文
摘要:
函数兼容性 大家在JS中经常可以看到这样的代码: lisr.forEach( (item) => {}); lisr.forEach( (item,index) => {}); 就是()的参数有时是可以省略的,而这个正式函数的兼容性性质。说白了就是: 多的函数 = 少的函数;参数少的函数可以赋值给参 阅读全文
摘要:
JS已有的数据类型如number、string、null....但并没有进行类型限制 所以,TS在支持JS全部类型的类型注解基础上,自己还加了一些新类型和新类型注解。 JS已有类型 基础类型:number , string ,boolean , null, undefined, symbol 对象类 阅读全文
摘要:
我是做Java的,看到这个字面量类型震惊我三观,原来设计类型可以这么草率。 先说吧,字符串、数字、对象、布尔类型的常量值,可以作为字面量类型。是的,是常量值作为类型。举个下面例子: const name:'zhangsan' = 'zhangsan' const age:18 = 18 const 阅读全文
摘要:
TS中有类型推断的机制,就是你不指定常量类型,TS会自动帮你推动,如下: 但他这种推断机制,是基于高层的父元素,很多子元素的方法和属性使用用不到,这样我们得手动的进行类型断言,使用 [as 元素类型],如下: 如果你不知道此标签的元素类型,可以通过下面的方式: 找到自己知道类型的标签类型,指着这个标 阅读全文
摘要:
如果两个interface之间存在相同属性,可以通过继承的方式达到复用。如下: interface A{ name: string } interface B extends A{ age: number } interface C extends A{ sex: number } 阅读全文
摘要:
interface和type区别 相同点 作用一样,都是预先定义类型,然后复用 不同点 interface只能定义对象类型,type是任何类型都可以 阅读全文
摘要:
TS中定义的函数参数,默认都是必传的,不然编译不过。如果想指定参数是可选,在参数后加?即可,如下: function add(num1?: number,num2?: number): void{ } 注意:可选参数后面是不能有必填参数的,举个反例: function add(num1?: numb 阅读全文
摘要:
什么是设计模式 简单理解,设计模式是前人多年写代码踩坑总结出来的优秀代码攻略,目的是减少大量无用代码,让项目更好维护 七大设计原则 接下来要讲的23种设计模式,但遵循下面的七大原则: 单一职责原则 2、接口隔离原则 依赖倒置原则 4、里氏替换原则 开闭原则 迪米特原则 合成复用原则 单一职责原则 单 阅读全文