TypeScropt
YY小怪兽
干饭了 干饭了
展开
-
TypeScript-头文件使用细节
1.使用别人编写好的头文件细节2.查看文件是什么导出ctrl+鼠标点击导入的文件点击*.d.ts3.ES6模块3.1分开导入导出3.2一次性导入导出3.3默认导入导出4.Node模块2.1通过exports.xxx = xxx导出4.2通过module.exports.xxx = xxx导出5.ES6的模块和Node的模块是不兼容的, 所以TS为了兼容两者就推出了如果导出 是TS模块的话,可以使用三种方法导入...原创 2022-06-08 13:05:08 · 317 阅读 · 0 评论 -
TypeScript-在koa中配置TS和使用koa-router
详情可见1.创建Node项目2.生成配置tsconfig.json3.安装相关依赖3-1.安装koa3-2.安装node和koa的相关的头文件3-3.方便设置当前的开发状态3-4.方便实时更新编译后的代码4.配置package.json"scripts"下添加如下代码5.编写koa代码......原创 2022-06-08 12:57:16 · 1629 阅读 · 0 评论 -
TypeScript-声明合并
1.接口合并1.1同名接口如果属性名相同, 那么属性类型必须一致1.2同名接口如果出现同名函数, 那么就会成为一个函数的重载2.命名空间2.1同名的命名空间中不能出现同名的变量,方法等2.2同名的命名空间中其它命名空间没有通过export导出的内容是获取不到的3.命名空间和类合并4.命名空间和函数合并5.命名空间和枚举合并...原创 2022-06-07 16:54:32 · 427 阅读 · 0 评论 -
TypeScript-命名空间
1.什么是命名空间?2.命名空间和模块区别调用其他位置的命名空间的方法./56/test.ts原创 2022-06-07 16:47:50 · 281 阅读 · 0 评论 -
TypeScript-键盘映射
1.什么是映射类型?根据旧的类型创建出新的类型, 我们称之为映射类型我们可以通过+/-来指定添加还是删除 只读和可选修饰符2.由于生成只读属性和可选属性比较常用, 所以TS内部已经给我们提供了现成的实现3.Pick映射类型将原有类型中的部分内容映射到新类型中4.Record映射类型他会将一个类型的所有属性值都映射到另一个类型上并创造一个新的类型......原创 2022-06-07 16:23:56 · 219 阅读 · 0 评论 -
TypeScript-unknown类型
什么是unknown类型?unknown类型是TS3.0中新增的一个顶级类型, 被称作安全的any1.任何类型都可以赋值给unknown类型2.如果没有类型断言或基于控制流的类型细化, 那么不能将unknown类型赋值给其它类型3.如果没有类型断言或基于控制流的类型细化, 那么不能在unknown类型上进行任何操作4.只能对unknown类型进行 相等或不等操作, 不能进行其它操作(因为其他操作没有意义)5.unknown与其它任何类型组成的交叉类型最后都是其它类型6.unknown除了与an原创 2022-06-07 16:13:38 · 1292 阅读 · 0 评论 -
TypeScript-分布式条件类型
1.条件类型(三目运算)2.分布式条件类型3.从T中剔除可以赋值给U的类型。 Exclude4.提取T中可以赋值给U的类型。 Extract5.从T中剔除null和undefined。 NonNullable6.获取函数返回值类型。 ReturnType7.获取一个类的构造函数参数组成的元组类型。 ConstructorParameters8.获得函数的参数类型组成的元组类型。 Parameters...原创 2022-06-07 16:03:50 · 480 阅读 · 0 评论 -
TypeScript-可辨识联合
详情可见原创 2022-06-07 10:45:35 · 128 阅读 · 0 评论 -
TypeScript-接口和类型别名异同
1.都可以描述属性或方法2.都允许拓展3.type 可以声明基本类型别名,联合类型,元组等类型, interface不能4.type不会自动合并原创 2022-06-07 10:40:10 · 159 阅读 · 0 评论 -
TypeScript-类型别名
详情可见1.什么是类型别名?类型别名就是给一个类型起个新名字, 但是它们都代表同一个类型例如: 你的本名叫张三, 你的外号叫小三, 小三就是张三的别名, 张三和小三都表示同一个人1.给string类型起了一个别名叫做MyString, 那么将来无论是MyString还是string都表示string2.类型别名也可以使用泛型3.在类型别名类型的属性中使用自己4.接口和类型别名是相互兼容的...原创 2022-06-07 10:20:51 · 757 阅读 · 0 评论 -
TypeScript-null和undefined
详情可见原创 2022-06-07 10:09:41 · 883 阅读 · 0 评论 -
TypeScript-类型保护
详情可见类型保护对于联合类型的变量,在使用时如何确切告诉编译器它是哪一种类型通过类型断言或者类型保护解决方案1.使用类型断言2.类型保护函数3.使用typeof来实现类型保护4.由于typeof只能保护 number/string/boolean/symbol类,对象可以通过instanceof来实现类型保护...原创 2022-06-07 10:05:37 · 180 阅读 · 0 评论 -
TypeScript-枚举
详情可见1.数字枚举默认情况下就是数字枚举enum Gender{ Male, Female}console.log(Gender.Male);console.log(Gender.Female);2.数字枚举注意点// 数字枚举的取值默认从0开始递增// 数字枚举的取值可以是字面量, 也可以是常量, 也可以是计算的结果const num = 666;function getNum() { return 888;}enum Gender{ // M原创 2022-05-26 15:54:03 · 195 阅读 · 0 评论 -
TypeScript-类和接口、类和泛型、接口合并现象
详情可见1.类和接口1.类"实现"接口interface PersonInterface { name:string; say():void;}// 只要实现的某一个接口, 那么就必须实现接口中所有的属性和方法class Person implements PersonInterface{ name:string = 'lnj'; say():void{ console.log(`我的名字叫:${this.name}`); }}let原创 2022-05-26 15:48:47 · 659 阅读 · 1 评论 -
TypeScripy-类的基本使用
详情可见1.TypeScript类的基本使用class Person { name:string; // 和ES6区别, 需要先定义实例属性, 才能够使用实例属性 age:number; constructor(name:string, age:number){ this.name = name; this.age = age; } say():void{ console.log(`我的名称叫${this.name}原创 2022-05-26 15:44:53 · 139 阅读 · 0 评论 -
TypeScript-泛型、泛型约束
详情可见1.什么是泛型?1.在编写代码的时候我们既要考虑代码的健壮性, 又要考虑代码的灵活性和可重用性 通过TS的静态检测能让我们编写的代码变得更加健壮, 但是在变得健壮的同时却丢 失了灵活性和可重用性 所以为了解决这个问题TS推出了泛型的概念2.过泛型不仅可以让我们的代码变得更加健壮, 还能让我们的代码在变得健壮的同时 保持灵活性和可重用性2.为什么使用泛型?一个简单的列子需求: 定义一个创建数组的方法, 可以创建出指定长度的数组, 并且可以用任意指定的内容填充这个数组示例一原创 2022-05-10 16:21:24 · 1007 阅读 · 1 评论 -
TypeScript-函数的可选、默认和剩余参数
详情可见1.可选参数可选参数需求: 要求定义一个函数可以实现2个数或者3个数的加法function add(x:number, y:number, z?:number):number { return x + y + (z ? z : 0);}// let res = add(10, 20);let res = add(10, 20, 30);console.log(res); 可选参数可以配置函数重载一起使用, 这样可以让函数重载变得更加强大function add(x:n原创 2022-05-10 15:52:39 · 2194 阅读 · 0 评论 -
TypeScript-函数声明和函数重载
详情可见1.TS函数完整格式 TS函数完整格式 在TS中函数的完整格式应该是由函数的定义和实现两个部分组成的// 定义一个函数let AddFun:(a:number, b:number)=>number;// 根据定义实现函数AddFun = function (x:number, y:number):number { return x + y;};let res = AddFun(10, 20);console.log(res);// 一步到位写法let AddF原创 2022-05-10 14:31:21 · 1657 阅读 · 0 评论 -
TypeScript-函数
详情可见TS中的函数TS中的函数大部分和JS相同 区别在于TS需要知道数据类型JS的函数// 命名函数function say1(name) { console.log(name);}// 匿名函数let say2 = function (name) { console.log(name);}// 箭头函数let say3 = (name) => { console.log(name);}TS的函数// 命名函数function say1(na原创 2022-05-10 14:16:38 · 106 阅读 · 0 评论 -
TypeScript-接口继承
详情可见// 接口的继承// TS中的接口和JS中的类一样是可以继承的interface LengthInterface { length:number}interface WidthInterface { width:number}interface HeightInterface { height:number}interface RectInterface extends LengthInterface,WidthInterface,HeightInterfa原创 2022-05-10 14:12:13 · 930 阅读 · 0 评论 -
TypeScript-函数接口和混合类型接口
详情可见1.函数接口函数接口我们除了可以通过接口来限定对象以外, 我们还可以使用接口来限定函数interface SumInterface { (a:number, b:number):number}let sum:SumInterface = function (x:number, y:number):number { return x + y;}let res = sum(10, 20);console.log(res);2.混合类型接口混合类型接口约定的内容中原创 2022-05-10 14:09:01 · 826 阅读 · 0 评论 -
TypeScript-接口基本使用
详情可见1.TypeScript的接口基本使用1.什么是接口类型?和number,string,boolean,enum这些数据类型一样,接口也是一种类型, 也是用来约束使用者的2.为什么使用接口?限定传入的数值的类型与我们需要的类型一样,由于JavaScript是弱类型,不会自己去查找类型错误,则通过定义一个接口并限定里面的数据类型则可以在编写的代码的时候发现问题// 定义一个接口类型interface FullName{ firstName:string lastNam原创 2022-05-10 13:52:21 · 178 阅读 · 0 评论 -
TypeScript-数据类型
详情可见1.基础类型// 数值类型 numberlet val1:number; // 定义了一个名称叫做val1的变量, 这个变量中将来只能存储数值类型的数据val1 = 123;console.log(val1);// 布尔类型 booleanlet val2:boolean;val2 = true;console.log(val2);// 字符串类型 stringlet val3:string;val3 = "123";console.log(val3);2.数组类型原创 2022-05-09 16:05:03 · 590 阅读 · 0 评论 -
TypeScript-类型断言
1.什么是类型断言?TS中的类型断言和其它编程语言的类型转换很像, 可以将一种类型强制转换成另外一种类型类型断言就是告诉编译器, 你不要帮我们检查了, 相信我,我知道自己在干什么。例如: 我们拿到了一个any类型的变量, 但是我们明确的知道这个变量中保存的是字符串类型 此时我们就可以通过类型断言告诉编译器, 这个变量是一个字符串类型 此时我们就可以通过类型断言将any类型转换成string类型, 使用字符串类型中相关的方法了let str:any = 'it666';.原创 2022-05-09 15:55:34 · 324 阅读 · 0 评论