TypeScript 编译器 API:typeChecker.typeToString() 与 Playground 工具提示

Axe*_*yer 3 typescript

例子:

const red = Symbol('red');
const green = Symbol('green');
type TColor2 =
  | typeof red
  | typeof green
;
Run Code Online (Sandbox Code Playgroud)

获取别名为 的类型的描述TColor2

  1. 游乐场工具提示: 'typeof red | typeof green'

  2. 编译器API:'TColor2'
    方法:

    // node is either ts.TypeAliasDeclaration or ts.TypeNode
    const type = typeChecker.getTypeAtLocation(node);
    const typeName = typeChecker.typeToString(type, node);
    
    Run Code Online (Sandbox Code Playgroud)

有没有办法通过编译器 API 获取 Playground 工具提示的文本?

Ale*_* L. 5

您可以将TypeFormatFlags.InTypeAlias标志传递给typeToString

typeChecker.typeToString(type, node, TypeFormatFlags.InTypeAlias);
Run Code Online (Sandbox Code Playgroud)

然后它会打印 typeof red | typeof green