Please enable JavaScript.
Coggle requires JavaScript to display documents.
Typescript (基本类型 (元组 (访问数组内的元素 (数组会存储相同结构的数组结构,我们可以定义和元祖类型一致的数组,如果不一致会报错。)…
Typescript
-
-
高级类型
交叉类型(&)
作用: 将多个类型合并为一个类型,譬如Person & Serializable & Loggable同时是 Person 和 Serializable 和 Loggable。 就是说这个类型的对象同时拥有了这三种类型的成员。
-
-
-
-
-
-
-
-
-
映射类型
-
可以由原有类型进行映射(包装)
Partial变成可选的,语法Partial<Person>可以把后面的类型的全部属性名变成可选的
-
-
Readonly, Partial和 Pick是同态的,但 Record不是。 因为 Record并不需要输入类型来拷贝属性,所以它不属于同态,非同态类型本质上会创建新的属性,因此它们不会从它处拷贝属性修饰符。
-
-
预定义的有条件类型
Exclude<T, U>-- 从T中剔除可以赋值给U的类型
Extract<T, U> -- 提取T中可以赋值给U的类型
-
-
-
接口
-
-
-
-
可索引的类型
-
用法:
-
-
同时使用必须保证数字索引的返回值必须是字符串索引返回类型的子类型,比如[index:string]: number。这是字符串索引类型,而name: string则错了,必须是number类型或者void之类的,也就是number的子集。当然也可以给索引签名设置为只读,这样就防止了给索引赋值。
-
-
-
-
-
jsx
-
类型检查
固有元素
固有元素使用特殊的接口JSX.IntrinsicElements来查找。 默认地,如果这个接口没有指定,会全部通过,不对固有元素进行类型检查。 然而,如果这个接口存在,那么固有元素的名字需要在JSX.IntrinsicElements接口的属性里查找。以小写开头
-
-
-
-
-
-
-
-
-
高级类型
-
接口
-
-
-
-
混合接口
用来创建比如函数本身加其他属性的对象,
interface lib{ ():void,dosomething: viod; version: void
-
-
泛型
-
-
-
-
好处
- 函数和类可以轻松的支持多种类型,增强程序的扩展性2. 不必写多条函数重载,隆昌的联合类型声明,增强代码可读性3. 灵活控制类型之间的约束
-
泛型
-
-
-
泛型约束
对于泛型约束来说,如果 这样的属性有.length属性,而我们又不能证明每种类型有length属性,那么我们可以使用约束条件,定义一个接口来描述约束条件,创建一个包含.length的属性的接口,使用这个接口和extends关键字来实现约束。但是这样他就不是任意类型的泛型了。
-
-
-
-
-
类型推论
最佳通用类型
当需要从几个表达式中推断类型时候,会使用这些表达式的类型来推断出一个最合适的通用类型.比如[1,"a"] => number | string;
-
模块和命名空间
模块
-
-
-
-
-
-
-
模块解析
-
-
ts使用的解析模块策略
-
然后往上跳一级root/node_modules,重复查找上面的文件路径
-
-
-
-
-
-
-
-
-
-
-
-