TypeScript reflect-metadata 库

reflect-metadata 是一个库,这个库可以帮助我们在类上面或者类的属性上面去存储一些数据,并且方便的数据获取

安装这个库 npm install reflect-metadata --save

import 'reflect-metadata';

const user = {
  name: 'dell'
}

// 一、最基础的存储获取值的方式:存储一个 data:test 的值到 user
Reflect.defineMetadata('data', 'test', user);
console.log(user); // 这样存储的源数据这样打印是看不到的
console.log(Reflect.getMetadata('data', user)); // 从 user 这个对象里面去拿 data 这个数据,打印出 test


// 二、存储类的键值对
@Reflect.metadata('data', 'test1') // 在类上面定义了一个 data:test 的值
class User{
  name = '1111'
}
console.log(Reflect.getMetadata('data', User)); // 获取 User 下面属性 data 的值


// 三、存储类的属性方法里面的值
class User1{
  @Reflect.metadata('data', 'test2')
  getName() {}
}
console.log(Reflect.getMetadata('data', User1.prototype, 'getName'))