typescript 中的原始函数装饰器

fdx2calv  于 2023-02-25  发布在  TypeScript
关注(0)|答案(1)|浏览(166)

我在python中有一个简单的装饰器,我用它来装饰函数

def decorator(fn):
    def wrapper(args):
        print("calling function")
        fn(args)
    return wrapper

@decorator
def printMyName(name):
    print(name)

printMyName('pengooX')

如果尝试在typescript中写一些类似的东西,它会抛出一个错误。

function decorator(fn){
    function wrapper(args){
        console.log("calling function")
        fn(args)
    }
    return wrapper
}

@decorator
function printMyName(n){
    console.log(n)
}

printMyName('pengooX')

我想知道原始函数装饰器在typescript中是否受支持,如果不支持,你能解释一下它背后的原因吗?我检查了typescript文档,在typescript文档中没有任何关于原始函数装饰器的讨论。

iswrvxsc

iswrvxsc1#

当前TC39标准的装饰器提议只包括装饰类和类成员,如详细的here。扩展document提议支持函数上的装饰器,但这还没有标准化。
TypeScript曾经有自己的装饰器版本(基于以前失败的标准建议),但是如果您正在开始一个新项目,我建议不要使用那些遗留的装饰器。

相关问题