我想使用TypeScript将来自NPM的反射元数据包集成到一个Aurelia项目中,但是我找不到关于如何做到这一点的任何指南。
是否有一种“标准”的方法来集成这个填充,它应该如何在TypeScript内部使用?
发布于 2017-07-18 00:23:47
现有的反射式聚光填充器与Aurelia一起提供的信息还不够吗?https://github.com/aurelia/polyfills/blob/master/src/reflect.js
如果不是,将reflect-metadata添加到Aurelia项目是相当简单的。
npm install --save reflect-metadata"reflect-metadata"添加到aurelia.json中的vendor-bundle配置的dependencies部分import "reflect-metadata";添加到需要使用API的任何TypeScript文件中。至于在TypeScript中使用它,我会检查这个页面:https://www.typescriptlang.org/docs/handbook/decorators.html
我将其中一个示例从页面复制到了一个Aurelia应用程序中,一切看起来都很好:
import "reflect-metadata";
export class App {
message : string;
constructor() {
let greeter = new Greeter("Ashley");
this.message = greeter.greet();
}
}
const formatMetadataKey = Symbol("format");
function format(formatString: string) {
return Reflect.metadata(formatMetadataKey, formatString);
}
function getFormat(target: any, propertyKey: string) {
return Reflect.getMetadata(formatMetadataKey, target, propertyKey);
}
class Greeter {
@format("Hello, %s")
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
let formatString = getFormat(this, "greeting");
return formatString.replace("%s", this.greeting);
}
}当我运行它时它是什么样子的:

https://stackoverflow.com/questions/45138893
复制相似问题