【发布时间】:2016-07-26 13:57:36
【问题描述】:
@xxx("xxx")
class A{
msg:string
constructor(msg:string) {
this.msg = msg
}
print() {
console.log(this.msg)
}
}
function xxx(arg:string) {
function f(target) {
function ff(msg: string) {
return new target(arg + ":" + msg)
}
return ff
}
return f
}
let a = new A("hellow")
a.print()
编译时会报:
decorator.ts(1,1):错误 TS1238:当作为表达式调用时,无法解析类装饰器的签名。 类型 '(msg: string) => any' 不可分配给类型 'void'。
但是生成的 js 执行得很好。不知道为什么会报错。
【问题讨论】:
-
还要确保你用括号
()调用@Input(),因为它是一个函数。 -
正如 STEEL 建议的那样,,, 这通常是您收到错误的原因。
-
另请注意,装饰器不适用于箭头函数(对于函数装饰器)。 () =>
标签: typescript