一.是什么 除了string.number.boolean 这种基础类型外,在 typescript 类型声明中还存在一些高级的类型应用 这些高级类型,是typescript为了保证语言的灵活性,所使用的一些语言特性.这些特性有助于我们应对复杂多变的开发场景 二.有哪些 常见的高级类型有如下: 交叉类型 联合类型 类型别名 类型索引 类型约束 映射类型 条件类型 交叉类型 通过 & 将多个类型合并为一个类型,包含了所需的所有类型的特性,本质上是一种并的操作 语法如下: T & U 适用于对…
总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript - 类 从C#到TypeScript - 函数 从C#到TypeScript - 装饰器 从C#到TypeScript - Promise 从C#到TypeScript - async await C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过…
C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过如果要更高效的开发,还是要看下高级类型,这篇和C#共同点并不多,只是延用这个主题. 联合类型 可以从字面上进行理解:其实就是多个类型联合在一起,用|符号隔开.如: string | number, 表示希望这个类型既可以是string,又可以是number.联合类型的字段只能调用这些类型共同拥有的方法,除非类型推论系统自动判断出真正的类型. //这里sn就是一个联合类型的字段,由于类型推论推断出s…
什么是工具类型 用 JavaScript 编写中大型程序是离不开 lodash 工具的,而用 TypeScript 编程同样离不开工具类型的帮助,工具类型就是类型版的 lodash .简单的来说,就是把已有的类型经过类型转换构造一个新的类型.工具类型本身也是类型,得益于泛型的帮助,使其能够对类型进行抽象的处理.工具类型主要目的是简化类型编程的过程,提高生产力. 使用工具类型的好处 先来看看一个场景,体会下工具类型带来什么好处. // 一个用户接口 interface User { name: s…
在大多数程序中,我们必须根据输入做出决策.TypeScript 也不例外,使用条件类型可以描述输入类型与输出类型之间的关系. 本文同步首发在个人博客中,欢迎订阅.交流. 用于条件判断时的 extends 当 extends 用于表示条件判断时,可以总结出以下规律 若位于 extends 两侧的类型相同,则 extends 在语义上可理解为 ===,可以参考如下例子: type result1 = 'a' extends 'abc' ? true : false // false type res…
在使用 Angular 做项目的时候,对 TypeScript 的类型判断不太熟练,为了方便查找,特意对 TypeScript 的类型判断做了简单梳理.文章只是 TS 官网的内容摘要,没有高深的知识,想要深入学习 TS 还要看官网文档. 基础类型 // 布尔值 let isDone: boolean = false; // 数字 let decLiteral: number = 6; let hexLiteral: number = 0xf00d; let binaryLiteral: numb…
⒈TypeScript的类型 JavaScript语言的数据类型包括以下7种: 1.boolean(布尔),true || false 2.null,表明null值得特殊关键字,JavaScript是大小写敏感的,不要误写成Null或者NULL 3.undefined,变量未定义时的属性 4.number,表示数字,例如1.1.2等等 5.string,表示字符串,例如:“Hello World!” 6.symbol,一种数据类型(在ES6种新添加的类型),表示该实例唯一且不可改变. 7.obj…
TypeScript函数类型 TypeScript函数的参数 TypeScript函数的this与箭头函数 TypeScript函数重载 一.TypeScript函数类型 在上一篇博客中已经对声明TypeScript类型变量已经做了初步的解析,这里先回顾以下: //声明函数 function add1(x:number,y:number):number{ return x+y; } let add2 = function(x:number,y:number):number{ return x +…
React 与 Hooks 如何使用 TypeScript 书写类型? 本文写于 2020 年 9 月 20 日 函数组件与 TS 对于 Hooks 来说是不支持使用 class 组件的. 如何在函数组件中使用 TS 呢? 首先定然是函数的类型,我们需要告诉 TS,这个函数他是个 React 组件. 如果是 JavaScript,我们会这么写函数组件: import React from 'react'; const MyComponent = () => { return <h1>你好…
类型断言是个好用的玩意,虽然typescript很强大,但是有时还不如我们知道一个值的类型,导致在开发过程中总是报一些令人头痛的类型错误.使用断言,简单来说就是先做好一个假设,使得编译通过. 我一开始接触类型断言时是有点不明白的,后来我了解到原因是 “类型断言更像是类型的选择,而不是类型转换”.我发现不少博客文章里把类型断言说成了类型转换,这在最开始给我带来了一些困扰. 使用类型断言有两种方式: <类型>值 或者 值 as 类型 推荐以 as 方式,因为 jsx 这样的语法中只支持 as 方式…