我正在尝试向函数表达式添加函数装饰器。装饰器适用于函数声明,但不适用于函数表达式。
装饰师:
function track(val: string) {
return function(_target: any, _key: string, descriptor: any) {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
Logger.log(val);
originalMethod.apply(this, args);
};
return descriptor;
};
Run Code Online (Sandbox Code Playgroud)
我试图注释的函数表达式:如果我尝试像这样装饰,它将不起作用:
const handleClick = @track('trackMe') (e) => { console.log(e) };
Run Code Online (Sandbox Code Playgroud)
或这个:
@trackMetric('sdf')
const handleClick = (e) => { console.log(e) };
Run Code Online (Sandbox Code Playgroud)
我有experimentalDecorators上和目标标志ES5。
是否可以在装饰品上注册点击事件?
我正在像这样在排水沟上渲染一个图标。有没有办法在装订线上呈现的内容上获得点击事件?
const decoration = vscode.window.createTextEditorDecorationType({
gutterIconPath: vscode.Uri.file('path/to/icon.svg'),
});
const editor = vscode.window.activeTextEditor;
editor.setDecorations(decoration, [new vscode.Range(
new vscode.Position(1, 0),
new vscode.Position(1, 0)
)]);
Run Code Online (Sandbox Code Playgroud)