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
TypeScript
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;
}