-1

我有一个在 TypeScript 中使用元数据和装饰器的框架,所以我知道它正在工作。

但是,今天我刚刚发现了一个奇怪的基本案例,我无法弄清楚为什么。

它可以在 TS@2.1.5、@2.1.6 和 @2.2.0-dev.20170214 中重现

该问题可以在https://github.com/unional/some-issues/tree/ts-meta-import中进行演示

情况总结

// Foo.ts
import 'reflect-metadata'

@Reflect.metadata('somekey', 123)
export class Foo { }

Reflect.getMetadata('somekey', Foo) // returns 123

上面的代码工作正常,但是如果我尝试访问Foo不同的文件并做同样的事情,它就不起作用:

import 'reflect-metadata'
import { Foo } from './Foo'

Reflect.getMetadata('somekey', Foo) // returns undefined

真的不应该这样......

更新:在我的框架中,我正在使用aurelia-metadata它似乎在这种情况下工作。但问题仍然存在,为什么这种“简单”的场景不适用reflect-metadata

4

1 回答 1

-1

答案是它确实有效。出于某种原因,当我今天尝试它时,它开始工作了。

独角兽刚刚经过。

感谢@blakeembrey 对此进行了调查。

于 2017-02-16T03:23:30.050 回答