Reflect.getMetadata 在 Angular2 中不起作用

2024-03-28

我用过这个(Reflect.getMetadata('annotations',AppComponent)[0].template);在 plunker 中它工作得很好http://plnkr.co/edit/f47uORghJXaq0FtD00Th?p=preview http://plnkr.co/edit/f47uORghJXaq0FtD00Th?p=preview

但在我的项目中我有这个错误Property 'getMetadata' does not exist on type 'typeof Reflect'

这是我的项目配置

包.json

{
  "name": "ng2-demo",
  "version": "1.0.0",
  "description": "A minimal Angular2 playground for different ng2-* components",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/akserg/ng2-demo"
  },
  "bugs": {
    "url": "https://github.com/akserg/ng2-demo/issues"
  },
  "scripts": {
    "install": "typings install",
    "play": "gulp play",
    "start": "npm run play"
  },
  "homepage": "https://github.com/akserg/ng2-demo#readme",
  "dependencies": {
    "@angular/common": "^2.0.0-rc.1",
    "@angular/compiler": "^2.0.0-rc.1",
    "@angular/core": "^2.0.0-rc.1",
    "@angular/http": "^2.0.0-rc.1",
    "@angular/platform-browser": "^2.0.0-rc.1",
    "@angular/platform-browser-dynamic": "^2.0.0-rc.1",
    "@angular/router": "^2.0.0-rc.1",
    "@angular/router-deprecated": "^2.0.0-rc.1",
    "angular2-in-memory-web-api": "0.0.7",
    "bootstrap": "^3.3.6",
    "dragula": "^3.7.1",
    "es6-promise": "~3.1.2",
    "es6-shim": "~0.35.0",
    "ng2-bs3-modal": "^0.6.1",
    "ng2-ckeditor": "1.0.0",
    "ng2-dnd": "^1.6.5",
    "ng2-dragula": "^1.1.10",
    "ng2-file-upload": "^1.0.3",
    "ng2-slim-loading-bar": "^1.2.3",
    "ng2-toasty": "^1.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.6",
    "systemjs": "0.19.27",
    "zone.js": "~0.6.12"
  },
  "devDependencies": {
    "connect": "^3.4.0",
    "del": "^1.2.0",
    "gulp": "^3.9.0",
    "gulp-gh-pages": "^0.5.4",
    "gulp-typescript": "^2.8.0",
    "open": "0.0.5",
    "serve-static": "^1.10.0",
    "typings": "^0.6.8"
  }
}

Systemjs.code.js

(function (global) {

    // map tells the System loader where to look for things
    var map = {
        'dist': 'dist', // 'dist',
        'rxjs': 'node_modules/rxjs',
        'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
        '@angular': 'node_modules/@angular',
        'ng2-toasty': 'node_modules/ng2-toasty',
        'ng2-dnd': 'node_modules/ng2-dnd',
        'ng2-slim-loading-bar': 'node_modules/ng2-slim-loading-bar',
        'ng2-dragula': 'node_modules/ng2-dragula',
        'ng2-bs3-modal': 'node_modules/ng2-bs3-modal',
        'ng2-ckeditor': 'node_modules/ng2-ckeditor/lib/',
        'ng2-uploader':'node_modules/ng2-uploader'
    };

    // packages tells the System loader how to load when no filename and/or no extension
    var packages = {
        'dist': {main: 'boot.js', defaultExtension: 'js'},
        'rxjs': {defaultExtension: 'js'},
        'ng2-toasty': {defaultExtension: 'js'},
        'ng2-dnd': {defaultExtension: 'js'},
        'ng2-slim-loading-bar': {defaultExtension: 'js'},
        'angular2-in-memory-web-api': {defaultExtension: 'js'},
        'ng2-ckeditor': {defaultExtension: 'js'},
        'ng2-dragula': {defaultExtension: 'js'},
        'ng2-bs3-modal': {defaultExtension: 'js'},
        'ng2-uploader': {defaultExtension: 'js'}
    };

    var packageNames = [
        '@angular/common',
        '@angular/compiler',
        '@angular/core',
        '@angular/http',
        '@angular/platform-browser',
        '@angular/platform-browser-dynamic',
        '@angular/router',
        '@angular/router-deprecated',
        '@angular/testing',
        '@angular/upgrade',
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function (pkgName) {
        packages[pkgName] = {main: 'index.js', defaultExtension: 'js'};
    });

    var config = {
        map: map,
        packages: packages,
        uiColor: '#990000'
    }

    // filterSystemConfig - index.html's chance to modify config before we register it.
    if (global.filterSystemConfig) {
        global.filterSystemConfig(config);
    }

    System.config(config);

})(this);

tsconfig.json

{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "removeComments": true,
    "sourceMap": true
  },
  "exclude": [
    "node_modules",
    "typings/main.d.ts",
    "typings/main"
  ]
}

我仍在使用 angular2 rc2 但我不知道错误从何而来 感谢您的帮助


在组件顶部添加以下行 -

///<reference path="../node_modules/reflect-metadata/reflect-metadata.d.ts"/>"

假设您使用的是 VScode。

看看这是否有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Reflect.getMetadata 在 Angular2 中不起作用 的相关文章

随机推荐

  • 有没有办法通过 API 将整个 Trello 看板导出为 JSON?

    我正在尝试比较 Trello 看板以突出差异 您可以通过将 URL 中的板名称替换为 json 轻松从 Trello 下载 JSON 格式的板 http trello com b board id here json http trello
  • 如何在项目构建设置中指定 DEBUG 定义?

    我正在尝试实施日志记录方法http www cimgf com 2010 05 02 my current prefix pch file http www cimgf com 2010 05 02 my current prefix pc
  • 如何使用 Flutter SQFlite 获取数据库表中的行数

    如何在 Flutter 中获取数据库表的行数 我正在使用 SQFlite 插件 我认为它与Android类似 但Android有DatabaseUtils queryNumEntries db TABLE NAME SQFlite有类似的东
  • iOS 6 facebook sdk 3.1.1 登录错误

    我尝试使用 facebook 登录 遵循 facebook 教程https developers facebook com docs getting started facebook sdk for ios 3 1 https develo
  • 布尔逻辑设计 - 归约

    我有以下功能需要减少 简化 F A B C D BC A C D 其中 表示补集 Here s my solution BC A C D BC A C D BC A C D BC C A D C B 1 A D C 1 A D C A D
  • 检测输入框中的粘贴

    我有一个输入框 我想使用 vbscript 或 javascript 没有 jquery 来捕获粘贴事件 使用 onpaste 事件捕获该事件并在 Javascript 中执行您需要的操作 例如 禁用输入文本字段中的粘贴
  • 当 Mac 设置(而非浏览器设置)拒绝位置共享时,HTML5 地理定位 API 会悄然失败

    我遇到了一个问题 如果我的 Mac 拒绝位置共享 那么 JS 代码中什么也不会发生 这很危险 无论如何要解决这个问题吗 如果系统拒绝位置共享 我预计会抛出异常 Running macOS Mojave 10 14 6并测试于Chrome 8
  • 检查类是否存在于文件中而不需要/包含

    有没有一种方法可以检查文件中是否存在类而不包含 需要该类 就像是 class in file file 正如我已经提到的 我知道这可以通过要求 包括课程然后查找来完成class exists class 但还有其他方法吗 tokens to
  • Java查找数组索引中的最后一个成员

    假设我有一个大小为 10 的数组 索引范围为 0 到 9 我添加了一堆元素 并在索引 6 处停止添加 因此 使用 array length 我可以知道数组的大小为 10 但是如何找到哪个索引包含最后一个值 而该索引之后为空 我应该做一个循环
  • Javascript 代码,未终止的字符串文字

    错误控制台 未终止的字符串文字 html li div class above question number Question Title div JQuery 代码是 html li li div class above questio
  • 如何获取子进程的返回码

    在windows中生成子进程获取返回值的方法是什么 看起来像ShellExecute 使用起来比原来更简单CreateProcess 但从我迄今为止所做的阅读来看 两者都没有表明如何检查生成进程的返回值 这是怎么做到的 谢谢 安迪 要获取
  • 无法在 Mac 上启动 ElasticSearch

    我安装了elasticsearch by brew install elasticsearch并开始它brew services start elasticsearch 然而 curl http 127 0 0 1 9200 shows c
  • 如何比较 python 函数的性能? [复制]

    这个问题在这里已经有答案了 我已经编写了两个函数来做完全相同的事情 但我不知道哪个更快更好 我如何比较这两个函数 看看哪一个在性能和其他方面更好 The timeit http docs python org library timeit
  • 如何保留 Spark HashingTF() 函数输入的键或索引?

    基于 1 4 的 Spark 文档 https spark apache org docs 1 4 0 mllib feature extraction html https spark apache org docs 1 4 0 mlli
  • 计算向量中所有差异的可能性

    假设我有一个短向量x a b c d e 计算向量成员之间的所有差异的最佳方法是什么 y e d e c e b e a d e d c d b d a c e c d c b c a b e b d b c b a a e a d a c
  • 您可以为 SQL 2008 查询设置默认架构吗

    我有一个名为应用程序的模式 有没有一种方法 而不是使用语法 SELECT FROM application table 我可以设置默认架构 以便我可以使用 SELECT FROM table 我想这与 using 语句的想法相同 所有 sq
  • ejabberd MAM 不适用于 MUC

    xep 0313 适用于名册 但不适用于房间聊天 我可以获取名册的存档消息 但无法获取房间的存档消息 为什么
  • 使用 scipy 应用 Sobel 过滤器

    我正在尝试在图像上应用 Sobel 滤波器以使用 scipy 检测边缘 我在 Windows 7 Ultimate 64 位 上使用 Python 3 2 64 位 和 scipy 0 9 0 目前我的代码如下 import scipy f
  • 空白而不是零

    Duration isnull FunctionA DateA DateB 上面的函数计算天数 如果 day 为空 则显示 值 0 而不是空白值 如何更改上面的代码 使其显示空白而不是 0 值 null 如果您的函数返回一个整数 则结果来自
  • Reflect.getMetadata 在 Angular2 中不起作用

    我用过这个 Reflect getMetadata annotations AppComponent 0 template 在 plunker 中它工作得很好http plnkr co edit f47uORghJXaq0FtD00Th p