
TypeScript入门
itxcr
这个作者很懒,什么都没留下…
展开
-
Typescript 基础知识
类型别名允许使用 type 关键字声明类型别名:type PrimitiveArray = Array<string | number | boolean>type MyNumber = numbertype NgScope = ng.IScopetype Callback = () => void环境声明允许在 TypeScript 中创建一个不会被编译到 Javascript 中的变量。这个特性是用来促进与现有 Javascript 代码、DOM(文档对象模型)、BOM原创 2022-03-29 16:19:41 · 1977 阅读 · 0 评论 -
09-TypeScript 装饰器执行顺序
属性 > 方法 > 方法参数 > 类如果有多个同样的装饰器,会优先执行后面的原创 2021-01-08 21:19:49 · 313 阅读 · 0 评论 -
08-TypeScript 方法参数装饰器
/* 方法参数装饰器会在运行时当做函数被调用,可以使用参数装饰器为类的原型增加一些元素数据,传入3参数 1. 对于静态成员来说是类的构造函数,对于实例成员是类的原型对象 2. 方法的名字 3. 参数在函数参数列表中的索引 */function logParams(params: any) { return (target: any, methodName: any, paramsIndex: any) => { console.原创 2021-01-08 21:18:20 · 419 阅读 · 0 评论 -
07-TypeScript 方法装饰器
/* 方法装饰器 会被应用到方法的属性描述上,可用来监视,修改或替换方法定义 需要三个参数 1. 对于静态成员来说是类的构造函数,对实例成员来说是类的原型对象 2. 成员的名字 3. 成员的属性描述 */function get(params: any) { return (target: any, methodName: any, desc: any) => { console.log(t原创 2021-01-08 21:17:16 · 198 阅读 · 2 评论 -
06-TypeScript 属性装饰器
/* 属性装饰器表达式会在运行时当做函数被调用,传入2个参数 1.对于静态成员来说是类的构造函数,对实例成员来说是类的原型对象 2.成员的名字 */// 类装饰器function calTet(params: string) { return function (target: any) { }}// 属性装饰器function caclData(params: any) { return function (target:any, attr: an原创 2021-01-08 21:15:37 · 181 阅读 · 0 评论 -
05-TypeScript 类装饰器重载构造函数
function logClassAgain2(target: any) { // 需要重载所有的属性和方法 return class extends target { apiUrl: any = `修改后的`; getData() { this.apiUrl += this.apiUrl console.log(this.apiUrl) } }}@logClassAgain2cl原创 2021-01-07 10:33:37 · 727 阅读 · 0 评论 -
04-Typescript 装饰器工厂
function logClassAgain(params: string) { return function (target: any) { target.prototype.path = `http://${params}` }}@logClassAgain('baidu.com')class DecFact { constructor() { }}let testResult:any = new DecFact()console.lo原创 2021-01-07 10:32:36 · 252 阅读 · 0 评论 -
03-TypeScript 普通装饰器
/* 装饰器:特殊类型的声明,能够被附加到类声明,方法,属性 或 参数上,可以修改类的行为 装饰器就是一个方法,可以注入到类,方法,属性参数上来扩展类、属性、方法、参数的功能 创建装饰器:类装饰器、属性装饰器、方法装饰器、参数装饰器 装饰器写法:普通装饰器(无法传参) 装饰器工厂(可传参) */// 1.类装饰器:类装饰器在类声明之前声明。// 类装饰器用于类构造函数,可以用来监视,修改或替换类定义,传入一个参数// 类装饰器function logC原创 2021-01-07 10:31:04 · 116 阅读 · 1 评论 -
02-TypeScript 泛型接口
interface Config { (key: string, val: string): string;}let md5: Config = function (key: string, val: string) { return val + key}原创 2021-01-07 10:26:32 · 131 阅读 · 0 评论 -
01-TypeScript 泛型概念
class Test {list: T[] = []add(value: T): T[] { this.list.push(value) return this.list}min(): T { let min = this.list[0] for (let i = 0; i < this.list.length; i++) { if (min > this.list[i]) { min = this.list[i]原创 2021-01-06 15:57:01 · 171 阅读 · 1 评论 -
generator生成器
generatorfunction* 是用来创建 generator函数的语法。调用generator函数时会返回一个generator对象。generator对象遵循迭代器接口,即通常所见到的next、return和throw函数。generator函数用于创建懒迭代器function* infiniteList() { let i = 0; while (i < 3) { yield i++; }}let item = infini原创 2020-09-02 11:36:49 · 2049 阅读 · 0 评论 -
iterator(迭代器)
iterator当一个对象实现了Symbol.iterator时,认为它是可迭代的。如array、map、set、string、int32Array、unit32Array等内置类型,目前都实现了各自的Symbol.iterator对象上的Symbol.iterator函数负责返回供迭代的值for…of语句会遍历可迭代的对象,调用对象上的Symbol.iterator方法如:在数组上使用for…of遍历const array = [123, 'xcr', true];for (原创 2020-09-02 11:20:28 · 487 阅读 · 0 评论 -
symbol类型
symbol自ES6起,symbol成为一种新的原生类型symbol是唯一的,通过同样方式生成的两个symbol也是不同的symbol也可以用于对象属性的键// @ts-ignoreconst symbol = Symbol();const obj = { [symbol ]: 'value'}console.log(obj[symbol])// value使用symbol最大的好处是,其他任何值都不可能有相同的值可以保证特定字面量或特定的switch语句值可原创 2020-09-02 11:18:47 · 278 阅读 · 0 评论 -
TypeScript枚举
枚举数字枚举enum OrderStatus_Number{ Start= 1, Unpaid, Shipping, Shipped, Complete}// 数字枚举不写默认值,第一个默认为0,后面依次递增// 如果赋予初始值则从初始值开始递增字符串枚举enum OrderStatus_String { Start= 'Start', Unpaid= 'Unpaid', Shipping= 'Shipping', S原创 2020-09-02 11:17:43 · 130 阅读 · 0 评论 -
TypeScript 范型
泛型泛型用于提升代码的重用性泛型函数// 定义函数function hello<T>(arg: T): T { return arg;}// 函数使用方式一let output = hello<string>('hello typescript');console.log(output)// hello typescript// 函数使用方式二let out = hello("hello xcr")console.log(out)// h原创 2020-09-02 11:15:33 · 202 阅读 · 0 评论