Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To obtain the deduced output data type using the TypeScript API, you can use the getReturnTypeOfSignature function from the typescript module. This function takes a Signature object (which represents a function signature) and returns the deduced output type. Here's an example:

import ts from 'typescript';

const code = `function add(a: number, b: number): number {
  return a + b;
}`;

const sourceFile = ts.createSourceFile('test.ts', code, ts.ScriptTarget.ES2015, true);

const addFunction = sourceFile.statements[0] as ts.FunctionDeclaration;

const returnType = ts.getReturnTypeOfSignature(ts.createSignatureDeclaration(
  undefined, // TypeParameters
  [], // Parameters
  ts.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword), // ReturnType
  ts.SyntaxKind.CallSignature, // Kind
));

console.log(returnType); // Output: number

In this example, we first create a SourceFile object from a TypeScript code string that contains a function declaration. We then extract the FunctionDeclaration object for the add function. Finally, we use the getReturnTypeOfSignature function to obtain the deduced output type, which is number.