import 'reflect-metadata';
const iu = {
name: '아이유',
age: 32,
nationality : 'korean',
}
console.log(iu);
Reflect.defineMetadata('test-meta', 123, iu);
console.log(iu);
console.log(Reflect.getMetadata('test-meta', iu));
Reflect.defineMetadata('test-meta', 456, iu);
console.log(Reflect.getMetadata('test-meta', iu));
Reflect.defineMetadata('test-meta2', 789, iu);
console.log(Reflect.getMetadata('test-meta2', iu));
Reflect.defineMetadata('test-meta2', {name: '코드팩토리'}, iu);
console.log(Reflect.getMetadata('test-meta2', iu));
Reflect.defineMetadata('object-meta', 999, iu, 'name');
console.log(Reflect.getMetadata('object-meta', iu, 'name'));
Reflect.deleteMetadata('object-meta', iu, 'name');
console.log(Reflect.getMetadata('object-meta', iu, 'name'));
console.log(Reflect.hasMetadata('object-meta', iu, 'name'));
console.log(Reflect.getMetadataKeys(iu));
Reflect.defineMetadata('object-meta', 999, iu, 'name')
console.log(Reflect.getMetadataKeys(iu, 'name'));
Reflect.defineMetadata('prototype-data', '프로토타입 메타예요!', Object.getPrototypeOf(iu));
console.log(Reflect.getMetadataKeys(iu));
console.log(Reflect.getOwnMetadataKeys(iu));