diff --git a/packages/scripts/src/commands/intergen.sample.ts b/packages/scripts/src/commands/intergen.sample.ts index 1846cd1..7c07d39 100644 --- a/packages/scripts/src/commands/intergen.sample.ts +++ b/packages/scripts/src/commands/intergen.sample.ts @@ -21,6 +21,10 @@ export interface IYear { year: number } +export interface ITyped { + value: T +} + type AorB = 'A' | 'B' export class Person { @@ -40,3 +44,9 @@ export class Person { export class Employee extends Person { duties: string[] = [] } + +export class Typed { + a!: ITyped + b!: ITyped + c!: ITyped +} diff --git a/packages/scripts/src/commands/intergen.ts b/packages/scripts/src/commands/intergen.ts index c5a35f1..913ad18 100644 --- a/packages/scripts/src/commands/intergen.ts +++ b/packages/scripts/src/commands/intergen.ts @@ -184,10 +184,6 @@ function delint(sourceFile: ts.SourceFile) { function delintNode(node: ts.Node) { // TODO check which classes are exported - // TODO check which interfaces are in use - // TODO check which type references are in use in addition to the - // primitives like string, string[], number, number[], boolean, - // boolean[] // TODO use typeParameters, for example type A = Array switch (node.kind) { case ts.SyntaxKind.InterfaceDeclaration: @@ -207,6 +203,7 @@ function delint(sourceFile: ts.SourceFile) { throw new Error('no class name: ' + cls.pos) break } + console.log('type params', cls.typeParameters) console.log(cls.name.escapedText, processClassMembers(cls.members)) } ts.forEachChild(node, delintNode)