随笔分类 - TS
摘要:import 'reflect-metadata'; function showData(target: typeof User) { for (let key in target.prototype) { const data = Reflect.getMetadata('data', targe
阅读全文
摘要:reflect-metadata 是一个库,这个库可以帮助我们在类上面或者类的属性上面去存储一些数据,并且方便的数据获取 安装这个库 npm install reflect-metadata --save import 'reflect-metadata'; const user = { name:
阅读全文
摘要:const userInfo: any = undefined; class Test{ getName() { return userInfo.name; } getAge() { return userInfo.age; } } const test = new Test(); test.get
阅读全文
摘要:/** * 参数装饰器,只要是装饰器一定是函数 * @param target Test 对应的 prototype * @param key 方法名 * @param paramIndex 参数所在的位置 */ function paramDecorator(target: any, method
阅读全文
摘要:/** * 属性装饰器只能接收到两个参数 * @param target Test 对应的 prototype * @param key 属性名字 */ function nameDecorator(target: any, key: string):any { const descriptor:
阅读全文
摘要:访问器譬如 private public protect /** * 访问器装饰器的参数跟方法装饰器的参数是一样的 * @param target prototype * @param key function name * @param descriptor 描述符 */ function vis
阅读全文
摘要:/** * 装饰器永远是个方法,方法的装饰器,里面的三个参数是规定好的 * * @param target 普通方法 target 对应的是类的 prototype * 静态方法 target 对应的是类的构造函数 * * @param key 装饰方法的名字 * * @param descript
阅读全文
摘要:// 最外层是个函数,再返回一个新的函数 function testDecorator(flag: boolean) { if (flag) { return function (constructor: any) { constructor.prototype.getName = () => {
阅读全文
摘要:// 类的装饰器:对类的一个修饰 /** * 装饰器本身是一个函数 * @param constructor * 类的装饰器接收的函数是类的构造函数 constructor * * testDecorator 的运行时机是类创建的时候立即执行 * 对类做修饰,不是对实例做修饰 */ function
阅读全文
摘要:interface Person{ name: string; age: number; gender: string; } class Teacher{ constructor(private info: Person) { } // getInfo(key: string) { // retur
阅读全文
摘要:安装 jquery cnpm install jquery --save 不以 cdn 的方式引入,而是以模块化的方式引入 jquery index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta n
阅读全文
摘要:index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl
阅读全文
摘要:index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl
阅读全文
摘要:初始化 package.json npm init -y 初始化 tsconfig.json tsc --init 安装 parcel cnpm install parcel@next -D tsconfig.json 找到配置 "outDir": "./dist", "rootDir": "./s
阅读全文
摘要:///<reference path = 'components.ts' /> namespace Home{ export class Page{ user: Components.User = { name: '111' } constructor() { new Components.Head
阅读全文
摘要:多个命名空间的引用 components.ts namespace Components{ export interface User{ name: string } export class Header { constructor() { const elem = document.create
阅读全文
摘要:demo.ts class Header { constructor() { const elem = document.createElement('div'); elem.innerText = 'This is Header'; document.body.appendChild(elem);
阅读全文
摘要:class DataManager{ constructor(private data: string[]) {} getItem(index: number): string { return this.data[index] } } /** * 创建了这样一个类,传递进来一个 string类型的
阅读全文
摘要:function join(first: string | number, second: string | number) { return `${first}${second}`; } join('1', 1); /** * 这么看 join 还挺好用的。 * 如果我想做到这两个数要么都传 st
阅读全文
摘要:function getResult(status) { if (status 0) { return 'offline' } else if (status 1) { return 'online'; } else if (status 2) { return 'deleted' } return
阅读全文