1 | interface TSBaseType {
|
2 | name: string;
|
3 | type?: string;
|
4 | raw?: string;
|
5 | required?: boolean;
|
6 | }
|
7 | declare type TSArgType = TSType;
|
8 | declare type TSCombinationType = TSBaseType & {
|
9 | name: 'union' | 'intersection';
|
10 | elements: TSType[];
|
11 | };
|
12 | declare type TSFuncSigType = TSBaseType & {
|
13 | name: 'signature';
|
14 | type: 'function';
|
15 | signature: {
|
16 | arguments: TSArgType[];
|
17 | return: TSType;
|
18 | };
|
19 | };
|
20 | declare type TSObjectSigType = TSBaseType & {
|
21 | name: 'signature';
|
22 | type: 'object';
|
23 | signature: {
|
24 | properties: {
|
25 | key: string;
|
26 | value: TSType;
|
27 | }[];
|
28 | };
|
29 | };
|
30 | declare type TSScalarType = TSBaseType & {
|
31 | name: 'any' | 'boolean' | 'number' | 'void' | 'string' | 'symbol';
|
32 | };
|
33 | declare type TSArrayType = TSBaseType & {
|
34 | name: 'Array';
|
35 | elements: TSType[];
|
36 | };
|
37 | export declare type TSSigType = TSObjectSigType | TSFuncSigType;
|
38 | export declare type TSType = TSScalarType | TSCombinationType | TSSigType | TSArrayType;
|
39 | export {};
|