反射元数据 'design:paramtypes' 在 Deno 上返回未定义
Reflection metadata 'design:paramtypes' returning undefined on Deno
我正在尝试使用 Deno 在打字稿中实现依赖注入,但是,我遇到了 Reflect.getMetadata('design:paramtypes', ...)
的问题,它返回了 undefined
值,但我没有不明白为什么。
Deno 1.6.0
Ubuntu 18.04.5 LTS
我正在使用此文件作为反映:https://github.com/edualb/dependencyInjectionPOC/blob/main/Reflect.ts
tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"lib": ["es5", "es6", "dom"],
}
}
代码
decorator.ts
export interface Type<T> {
new(...args: any[]): T;
}
export function Injectable(): (target: Type<any>) => void {
return (target: Type<any>) => {}
}
service2.ts
import { Injectable } from './decorator.ts';
@Injectable()
export class Service2 {
constructor() {}
}
service.ts
import { Injectable } from './decorator.ts';
import { Service2 } from './service2.ts';
@Injectable()
export class Service {
constructor(private s2: Service2) {}
}
main.ts
import { Reflect } from './Reflect.ts';
import { Service } from './service.ts';
console.log(Reflect.getMetadata('design:paramtypes', Service)) // here is returning undefined
用于执行的命令:
$ deno run main.ts
Github: https://github.com/edualb/dependencyInjectionPOC
有人可以帮助解决这个问题吗?
我已经解决了在执行命令中放置标志 -c
/ --config
的问题:
$ deno run -c tsconfig.json main.ts
我正在尝试使用 Deno 在打字稿中实现依赖注入,但是,我遇到了 Reflect.getMetadata('design:paramtypes', ...)
的问题,它返回了 undefined
值,但我没有不明白为什么。
Deno 1.6.0
Ubuntu 18.04.5 LTS
我正在使用此文件作为反映:https://github.com/edualb/dependencyInjectionPOC/blob/main/Reflect.ts
tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"lib": ["es5", "es6", "dom"],
}
}
代码
decorator.ts
export interface Type<T> {
new(...args: any[]): T;
}
export function Injectable(): (target: Type<any>) => void {
return (target: Type<any>) => {}
}
service2.ts
import { Injectable } from './decorator.ts';
@Injectable()
export class Service2 {
constructor() {}
}
service.ts
import { Injectable } from './decorator.ts';
import { Service2 } from './service2.ts';
@Injectable()
export class Service {
constructor(private s2: Service2) {}
}
main.ts
import { Reflect } from './Reflect.ts';
import { Service } from './service.ts';
console.log(Reflect.getMetadata('design:paramtypes', Service)) // here is returning undefined
用于执行的命令:
$ deno run main.ts
Github: https://github.com/edualb/dependencyInjectionPOC
有人可以帮助解决这个问题吗?
我已经解决了在执行命令中放置标志 -c
/ --config
的问题:
$ deno run -c tsconfig.json main.ts