UNPKG

typedraft

Version:

TypeDraft is a superset of typescript with built-in support for DSL extension and literate programming.

42 lines (40 loc) 1.16 kB
import { ExpressionStatement, BinaryExpression, JSXElement, FunctionExpression } from "@babel/types"; import { NodePath } from "@babel/traverse"; /** * # Class Method * As we want to rearrange code in literate programming, we will seperate class method from class body. */ export declare class MethodCode { m_Path: NodePath<ExpressionStatement>; constructor(path: NodePath<ExpressionStatement>); get m_Code(): ExpressionStatement; get m_Left(): JSXElement; get m_Right(): FunctionExpression; get m_Expression(): BinaryExpression; get m_ClassName(): string; /** * The syntax will be: * ```ts export class Foo { } <Foo/> + function Test(this: Foo, a: number, b: string) { return a.toString()+b; } ``` * * After transcription, we will restore `Foo` class to: * ```ts export class Foo { static foo : number; Test(a: number, b: string) { return a.toString()+b; } } ``` * * ## Restore: To Class Method */ ToClassMethod(): import("@babel/types").ClassMethod; }