Skip to content

Not possible to create an Interface definition in synthetic AST #15497

Closed
@phated

Description

@phated

TypeScript Version: 2.3.2

Code

// A *self-contained* demonstration of the problem follows...

// There doesn't seem to be an API to create an Interface in the AST programmatically
const _implementsClause = ts.createHeritageClause(ts.SyntaxKind.ImplementsKeyword, [
    ts.createExpressionWithTypeArguments([], ts.createIdentifier('MyInterface'))
]);
const _exportModifier = ts.createToken(ts.SyntaxKind.ExportKeyword);
const _classExpression = ts.createClassExpression([_exportModifier], 'MyClass', [], [_implementsClause], []);
const _classStatement = ts.createStatement(_classExpression);

let src = ts.createSourceFile('output.ts', '', ts.ScriptTarget.ES5, false, ts.ScriptKind.TS);
src = ts.updateSourceFileNode(src, [_classStatement]);

Expected behavior:
There should be an API for creating an Interface definition in a synthetic AST.

Actual behavior:
Doesn't seem like the API exists.

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFixedA PR has been merged for this issueHelp WantedYou can do this

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions