Files
NapCatQQ/.pnpm-store/v3/files/83/f2859540414ded04d96f5342ceb3b1ad06396ec368a4ae878a3bc361c6f780d97be54ba6951d90b4cce57db1df11545f883a9754c42e9612e33e97a3f6804a
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

65 lines
1.6 KiB
Plaintext

# Decorators on classes and class fields
@d1 class Foo {
@d2 bar() {}
@d3 get baz() { return 1 }
@d4 quux = 1
}
==>
Script(ClassDeclaration(
Decorator(VariableName),
class,VariableDefinition,ClassBody(
MethodDeclaration(Decorator(VariableName),PropertyDefinition,ParamList,Block),
MethodDeclaration(Decorator(VariableName),get,PropertyDefinition,ParamList,Block(
ReturnStatement(return,Number))),
PropertyDeclaration(Decorator(VariableName),PropertyDefinition,Equals,Number))))
# Multiple decorators
@d1 @d2 class Y {}
==>
Script(ClassDeclaration(Decorator(VariableName),Decorator(VariableName),class,VariableDefinition,ClassBody))
# Member decorators
@one.two class X {}
==>
Script(ClassDeclaration(Decorator(MemberExpression(VariableName,PropertyName)),class,VariableDefinition,ClassBody))
# Call decorators
@d(2) @a.b() class Z {}
==>
Script(ClassDeclaration(
Decorator(CallExpression(VariableName,ArgList(Number))),
Decorator(CallExpression(MemberExpression(VariableName,PropertyName),ArgList)),
class,VariableDefinition,ClassBody))
# Parenthesized decorators
@(a instanceof Array ? x : y)(2) class P {}
==>
Script(ClassDeclaration(
Decorator(CallExpression(ParenthesizedExpression(
ConditionalExpression(BinaryExpression(VariableName,instanceof,VariableName),LogicOp,VariableName,LogicOp,VariableName)),
ArgList(Number))),
class,VariableDefinition,ClassBody))
# Parameter decorators
function foo(@d bar) {}
==>
Script(FunctionDeclaration(function,VariableDefinition,ParamList(Decorator(VariableName),VariableDefinition),Block))