在打字稿中,reflect-metadata数据包无法正常工作

时间:2019-09-02 03:35:24

标签: typescript

我使用了reflect-metadata安装软件包,对其进行了介绍,并在tsconfig文件中配置了一些相应的方法,我必须指定一些参数:

必须指定:moduleResolution: node

tsconfig.js:

{
  "compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
    "target": "esnext",
    "jsx": "preserve",
    "declaration": true,
    "typeRoots": ["@/types"],
    "experimentalDecorators": true,
    "sourceMap": true,
    "emitDecoratorMetadata": true
  },
  "exclude": [
    "node_modules"
  ]
}

将参数指定为正常使用的节点,否则将报告错误, Reflect.defineMetadata is not a function


import 'reflect-metadata'

function f (target: any) {
  return function (target: string, propertyKey: any, descriptor) {
    Reflect.defineMetadata('xxx', 'xxx', 'xxx')
  }
}

class Person {
 @f()
 move () {}
}

我只是使用了defineMetadata的这种方法,并没有做任何事情,但是webpack不会自动加载它,并且整个过程停止。

我必须手动强制关闭并重新启动npm run dev

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

由于类型处理方式的变化,似乎将us-east1-c导入TypeScript的方式已随着时间而改变,但我认为目前您需要这样做:

reflect-metadata