TypeScript
TypeScript学习
DreamCatcher
热爱编程,不仅仅是为了工作,而是爱好。
热爱生活,不仅仅是为了生存,而是责任。
热爱运动,不仅仅是为了健康,而是习惯。
沉迷太极拳,每天早上5点50起床,练四十分钟拳,四年内风雨无阻。
岁月流程,不再年轻,在这浮躁的社会和超强的生活压力下,希望在编程的道路上,能够坚持下去。
展开
-
Property ‘getUserProfile‘ does not exist on type ‘Wx‘ 问题解决
1、在开发微信小程序,执行命令npm run tsc抛出以下错误:2、进入wx中的源码,发现无getUserProfile方法,初步怀疑版本较低的问题。3、查看package.json文件,miniprogram-api-typings配置项的版本号为"^2.8.3-1"4 、通过链接https://github.com/wechat-miniprogram/api-typings/tags查看api-typings的版本发布情况,已经达到3.X了进一步确认是.原创 2021-04-26 23:06:04 · 1239 阅读 · 1 评论 -
TypeScript应用 极速上手(18)
1、自定义泛型class MyArray<T>{ data:T[] = [] add(t:T){ this.data.push(t) } print(){ console.log(this.data) } //MyArray<number>.map<string>(f: (v: number) => string): string[] //定义一个泛型方法 //U:未知原创 2021-04-26 17:19:06 · 63 阅读 · 0 评论 -
TypeScript应用 极速上手(17)
1、接口所涉及的角色(1)定义者(2)实现者(3)使用者2、接口的隐式实现(推荐使用)定义者=使用者方便解耦3、接口的显示实现定义者=实现者4、示例//service.ts//定义接口interface Service { login(): void getName(): string getProduct(): string startTravel(): void}//接口实现class RPCService imple原创 2021-04-26 16:02:21 · 96 阅读 · 0 评论 -
TypeScript应用 极速上手(16)
1、类注意:普通的JOSN对象中也可以有getter和setter方法class Employee { //默认为public // name:string // salary:number //可选参数不用初始化 private allocatedBonus?:number //增加public,相当于定义了两个字段 constructor(public name:string,public salary:number){} //ge.原创 2021-04-26 14:51:58 · 120 阅读 · 0 评论 -
TypeScript应用 极速上手(15)
1、可选参数串联与非空断言(1)可选参数串联(?),只要有一个值是undefined则结果就为undefined(2)非空断言(!):如果字段不存在,则会抛出ERRinterface Employee { name?:{ first?:string last:string } salary:number bonus?:number}function hasBadName(e:Employee){ // return..原创 2021-04-26 12:53:28 · 254 阅读 · 0 评论 -
TypeScript应用 极速上手(14)
1、接口的基本定义本质就是简单的描述一个类型,不一定需要实现,实现时只需要符合接口的定义即可2、主要语法,接口主要包括:(1)字段(2)方法对象作为函数的参数时 考虑用类来实现接口(3)可选字段及方法(?) (4) 只读字段3、示例interface Employee { readonly name :string salary:number bonus?:number updatetBonus(p:number): void //一般用.原创 2021-04-25 17:47:21 · 63 阅读 · 0 评论 -
TypeScript应用 极速上手(13)
1、async-await语法糖(1)await须在一个async函数中使用,异步等待 (2) await关键字返回的是Promise(3)通过try-catch捕捉错误2、示例(1)分步计算function add (a:number,b:number):Promise<number> { return new Promise((resolve,reject) => { if (b === 23){ rejec..原创 2021-04-25 15:57:13 · 112 阅读 · 0 评论 -
TypeScript应用 极速上手(12)
1、同时等待多个Promise//(2+3)*(4+5)//要求:同时执行(2+3)和(4+5),等结果都到了之后,再执行乘法Promise.all([add(2,3),add(4,5)]).then(res => { //利用元组 const [a,b] = res console.log('result',a,b) return mul(a,b)}).then(res => { console.log('final result',res)原创 2021-04-25 14:07:03 · 411 阅读 · 0 评论 -
TypeScript应用 极速上手(11)
1、Promise示例(1)同步调用//同步调用 function add(a:number,b:number):number { return a + b } console.log(add(2,3))(2)模拟回调函数调用如果add操作是一个网络请求,在服务器上进行计算,再把结果进行返回,前端单线程的话前端界面不能等待,用户操作就会卡住因此采用回调函数的机制,把结果放在回调函数里面,回调函数不需要返回值function add(a:number,b:numb原创 2021-04-25 11:23:34 · 374 阅读 · 0 评论 -
TypeScript应用 极速上手(10)
1、前端异步运行机制原创 2021-04-23 16:50:21 · 68 阅读 · 0 评论 -
TypeScript应用 极速上手(9)
1、部分应用函数场景:第三方函数有两个参数,但是实际情况我们只有一个参数,参数数量不匹配,此种情况,可以利用闭包,先写一个单参数的函数,把函数的整个内容,放到原函数里面,做成闭包,达到利用一个参数就可以调用原来两个参数的函数,达到部分利用函数。2、示例function isGoodNumber(goodFactor:number,v:number){ return v % goodFactor === 0}function fiterArray(a:number[],f:(v:n原创 2021-04-22 21:25:28 · 93 阅读 · 0 评论 -
TypeScript应用 极速上手(8)
1、函数式编程减少函数的副作用定义一个函数,既可以通过不同的方式打印日志,也可以对数组进行排序。并没有副作用。//函数式编程:减少函数的副作用。//定义一个函数,既可以通过不同的方式打印日志,也可以对数组进行排序。并没有副作用。function loggerComparer( logger:(a:number,b:number) => void, comp:(a:number,b:number)=> number){ //返回一个函数 retu原创 2021-04-22 18:29:08 · 89 阅读 · 0 评论 -
TypeScript应用 极速上手(7)
1、函数作为“一等公民”主要体现在:变量类型可以是函数 值(literal)可以是函数 对象字段可以是函数 函数的参数可以是函数 函数的返回值可以是函数2、实例let a = [3,5,8,9,7,6,12,35,18,78,11]// 变量类型可以是函数 = literal 是函数// let compareNumber = function(a:number,b:number){// return a-b// }//推荐使用箭头函数(lambda表达原创 2021-04-22 13:39:14 · 73 阅读 · 0 评论 -
TypeScript应用 极速上手(6)
1、为对象定义方法function registerEmployee(p:any){ return p}const emp1 = registerEmployee({ name:'james', salary:10000, bonus:undefined as (number | undefined), performance:4.5, //对象方法,当然this也有嵌套函数调用的深坑 updateBonus(){ if(!原创 2021-04-21 17:01:49 · 85 阅读 · 0 评论 -
TypeScript应用 极速上手(5)
1、函数的定义及重载//函数重载(不建议)//仅仅声明一下函数,但是最终要提供一个函数实现function add(a:number,b:number):numberfunction add(a:number,b:number,...e:number[]):numberfunction add( a:number, b:number, c?:number, //c为可选参数 d:number=0, //参数d的默认值为0 ...e:number[] /原创 2021-04-21 16:24:39 · 90 阅读 · 0 评论 -
TypeScript应用 极速上手(4)
1、对象类型2、示例const emp1 = { name : { first : '四', last : '张' }, gender : 'male' as 'male' | 'femal'| 'other' | 'unknown', //指定初始值为male salary:8000, bouns:undefined as (number | undefined), performance:3.5, b原创 2021-04-21 15:06:44 · 84 阅读 · 0 评论 -
TypeScript应用 极速上手(3)
1、数组字面量定义let a = ['a','b','c'] //string[]let b = ['a','b','c',4,5] //(string | number)[]console.log("a:",a) //"a:", ["a", "b", "c"]console.log("b",b) // "b", ["a", "b", "c", 4, 5] 2. 指定类型定义//指定类型let c:number[] = [4,5]//通过泛型指定let d: Arra..原创 2021-04-21 14:45:05 · 1003 阅读 · 0 评论 -
TypeScript应用 极速上手(2)
1、基本数据类型数据类型包括:1.number2.boolean3.string4.literal类型5.类型的并集6.any类型7.undefined类型2、关键知识点1.类型的并集function f(s:200 | 400 | 500 | '200' | '400' | '500'){ //union of types string | number let status : string | number = s}2.undefi原创 2021-04-20 14:48:50 · 73 阅读 · 0 评论 -
TypeScript应用 极速上手(1)
1、安装nodejs(1)下载地址:https://nodejs.org/en/download/,选择相应服务器版本下载、安装。以下相关目录如果没有则需要手动新建。(2)设置PATH环境变量,以win10为例:新建系统变量NODE_PATH:(3)更改全局依赖包下载路径:在命令行窗口中,执行以下语句:npm config set prefix "D:\Program Files\nodejs\node_global"npm config set cache "D原创 2021-04-20 14:38:01 · 209 阅读 · 0 评论