首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Aurelia项目中引用和导入反射元数据?

如何在Aurelia项目中引用和导入反射元数据?
EN

Stack Overflow用户
提问于 2017-07-17 08:03:07
回答 1查看 810关注 0票数 1

我想使用TypeScript将来自NPM的反射元数据包集成到一个Aurelia项目中,但是我找不到关于如何做到这一点的任何指南。

是否有一种“标准”的方法来集成这个填充,它应该如何在TypeScript内部使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 00:23:47

现有的反射式聚光填充器与Aurelia一起提供的信息还不够吗?https://github.com/aurelia/polyfills/blob/master/src/reflect.js

如果不是,将reflect-metadata添加到Aurelia项目是相当简单的。

  1. npm install --save reflect-metadata
  2. "reflect-metadata"添加到aurelia.json中的vendor-bundle配置的dependencies部分
  3. import "reflect-metadata";添加到需要使用API的任何TypeScript文件中。

至于在TypeScript中使用它,我会检查这个页面:https://www.typescriptlang.org/docs/handbook/decorators.html

我将其中一个示例从页面复制到了一个Aurelia应用程序中,一切看起来都很好:

代码语言:javascript
复制
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);
    }
}

当我运行它时它是什么样子的:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45138893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档