摘要:
TS 是结构类型系统(structural type system),基于结构/形状检查类型,而非类型的名字。 TS 中的兼容性,主要看**结构是否兼容**。(核心是考虑安全性),结构化的类型系统(又称鸭子类型检查),如两个类型名字不一样但是无法区分 类型兼容性是基于结构子类型的。 结构类型是一种只 阅读全文
摘要:
类型推导: inference, 使用 infer 关键字 只能用在条件类型中,用来提取类型的某一个部分的类型,放在不同的位置 就可以取不同位置的类型 ReturnType,Parameters,InstanceType,ConstructorParameters 内置的类型 1.ReturnTyp 阅读全文
摘要:
交叉类型 交叉类型(交集)会把多个类型变成一个类型,相当于 & 按位与操作 (都要满足才可以),生成的交叉类型 是 A B 的子类 ,内部的嵌套类型也会做交叉类型。 联合类型(并集)相当于| 按位或,满足其中一个就可以。 interface Person1 { handsome: string; a 阅读全文
摘要:
泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。 泛型可以用于 函数 对象 类... 一.指定函数参数类型 单个泛型 案例:创建一个指定长度的数组,同时将每一项都填充一个默认值,根据参数不同,处理结果不同,入参和返回值有映射关系 // 阅读全文
摘要:
在 TS 中,使用接口(Interfaces)来定义对象的类型。可用于对类的一部分行为进行抽象以外,也常用于对对象的形状(Shape)进行描述。(接口都是抽象的,接口中不能含有具体的实现逻辑) 一.函数接口参数 const fullName = ({ firstName, lastName }: { 阅读全文
摘要:
类的组成部分:构造函数、属性(实例属性、原型属性、静态属性)、方法(实例方法、原型方法、静态方法、访问器) TS 中定义类 实例属性/方法:所有实例上的属性和方法都需要先声明后再使用 class Circle { x: number; y: number; constructor(x: number 阅读全文
摘要:
对于函数主要关心的是:函数的入参类型 和 函数的返回值类型 函数的两种声明方式 通过 function 关键字来进行声明,不涉及到变量类型的标注 function sum(a: string, b: string): string { // 限制函数的参数和返回值类型 return a + b; } 阅读全文
摘要:
空值void 及(与Null 和 Undefined的区别) JavaScript 没有空值(Void)的概念,在 TS中,用 void 表示没有任何返回值的函数: function alertName(): void { alert('My name is Tom'); } 然而声明一个 void 阅读全文
摘要:
146. LRU 缓存 var LRUCache = function (capacity) { this.capacity = capacity; this.map = new Map(); }; LRUCache.prototype.get = function (key) { if (this 阅读全文
摘要:
3. 无重复字符的最长子串 var lengthOfLongestSubstring = function(s) { let arr = []; let max = 0 for (let i = 0; i < s.length; i++) { let index = arr.indexOf(s[i] 阅读全文