当前是否可以针对箭头函数中的参数使用装饰器?例如:
const func: Function = (@Decorator param: any) => { ... }
或
class SomeClass {
public classProp: Function = (@Decorator param: any) => { ... }
}
WebStorm不喜欢它,编译器不喜欢它,并且找不到在线文档来暗示这是否是有效的Typescript。
我的特定问题是在类中将其用作属性,但看起来该问题也扩展到了标准变量声明。
如果这是无效的,是否有任何计划允许这样做?
答案 0 :(得分:0)
在打字稿文档中,如果我对您的理解正确,那么您会在这里找到答案:https://www.typescriptlang.org/docs/handbook/decorators.html
引用相关部分
array[0]
然后按原样使用
等级Greeter { 问候:字符串;
import "reflect-metadata";
const requiredMetadataKey = Symbol("required");
function required(target: Object, propertyKey: string | symbol, parameterIndex: number) {
let existingRequiredParameters: number[] = Reflect.getOwnMetadata(requiredMetadataKey, target, propertyKey) || [];
existingRequiredParameters.push(parameterIndex);
Reflect.defineMetadata(requiredMetadataKey, existingRequiredParameters, target, propertyKey);
}
function validate(target: any, propertyName: string, descriptor: TypedPropertyDescriptor<Function>) {
let method = descriptor.value;
descriptor.value = function () {
let requiredParameters: number[] = Reflect.getOwnMetadata(requiredMetadataKey, target, propertyName);
if (requiredParameters) {
for (let parameterIndex of requiredParameters) {
if (parameterIndex >= arguments.length || arguments[parameterIndex] === undefined) {
throw new Error("Missing required argument.");
}
}
}
return method.apply(this, arguments);
}
}
}
希望它会有所帮助;)
Seb