在Java中,我们可以使用“类路径扫描”找到具有给定注释的所有类。
我们如何在 TypeScript 中做类似的事情?有没有办法找到所有装饰有某种装饰的类?
这是一个例子。它假设您有某种方式引用范围。这magical
类装饰器创建一个名为的字符串属性isMagical
在它所应用的类上,并将其值指定为“确实”。然后findMagicalInScope()
函数循环遍历指定范围内的属性(这就是为什么这些类都在一个模块中)并查看它们是否有isMagical
财产。
module myContainer {
@magical
export class foo {
}
export class bar {
}
@magical
export class bas {
}
}
function magical(item: any) {
item.isMagical = "indeed";
}
function findMagicalInScope(theScope: any) {
for(let prop in theScope) {
if (theScope[prop]["isMagical"]) {
console.log(`Is ${prop} magical? ${theScope[prop]["isMagical"]}!`);
} else {
console.log(`${prop} is not magical. :-(`);
}
}
}
findMagicalInScope(myContainer);
在 Node.js 中运行时将生成以下输出:
Is foo magical? indeed!
bar is not magical. :-(
Is bas magical? indeed!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)