禁用在TypeScript中显示类型的别名

时间:2019-11-14 08:19:46

标签: typescript

例如,在创建类型别名并使用它时,例如在导出方法的签名中,该方法获得的智能提示将显示别名,而不是实际的基础类型。有没有一种方法可以针对特定类型选择退出?

我可以看到在某些情况下(这是您想要的),但有时创建别名是因为完整类型表达式在源文件中是重复的或繁琐的,但是在外部,别名是一个不透明的名称,不能帮助消费者知道如何实现它。

1 个答案:

答案 0 :(得分:3)

Typescript使用一些启发式方法来决定何时保留类型别名或何时将其扩展。我们实际上对此没有太多控制权,并且根据反馈和错误,试探法可能会因版本而异。

话虽如此,我们有时可以利用编译器的作用来强制扩展类型别名。例如,此代码将显示所需的工具提示,但需要更改签名:

type AnAlias = (a: number) => string;

type FunctionSignature<T extends (...a: any) => any> = {} & ((...a: Parameters<T>) => ReturnType<T>)

declare function fn(a: FunctionSignature<AnAlias>): void

fn()

Playground Link

tooltip imgage