在 VSCode 中,TypeScript 显示了我定义的类型的非常有用的扩展。但是 TS 在 IntelliSense 中显示的内容是有限的。如果一个类型太长,那么我会看到这样的输出:
注意接近尾声的“11 more”。有时,为了对困难的类型定义进行故障排除,查看“N more”部分中的内容确实很有帮助。
有没有办法获得(用于开发期间的故障排除目的)完全扩展的类型定义,而没有那些“N more”消息来隐藏里面的内容?
https://github.com/Microsoft/vscode/issues/6638暗示截至 2017 年 2 月,此功能可能尚未可用(也未计划),但我不确定我是否正确阅读了该问题,无论情况如何在此期间发生了变化。
我想知道是否有可能给一个具有导出类型的文件,这些类型是否可以从泛型中提取到计算类型?
function example() {
return {
foo: 'hi',
bar: true,
baz: 1
};
}
export type Signature = ReturnType<typeof example>;
Run Code Online (Sandbox Code Playgroud)
对此:
export type Signature = {
foo: string;
bar: boolean;
baz: number;
}
Run Code Online (Sandbox Code Playgroud)
我不相信tsccli会这样做,我不确定这个过程会被称为什么。
可以tsc创建这个导出吗?
有没有第三方工具可以做到这一点?
我知道如何做到这一点的唯一方法是将鼠标悬停在 VSCode 中的变量上并复制计算类型,并且只有在它很短并且不会减弱时才有效......
我发现了其他一些对类似请求的引用:
我有一个重载的函数:
interface FunctionWithOverload {
(): {
a: 1
b: 1
}
<T>(arg: T): {
a: 1
b: 1
} & (T extends number ? { c: 1 } : {})
}
const fwo: FunctionWithOverload = () => {return {} as any}
const result = fwo() // result has a nice type: {a: 1, b: 1}
const result1 = fwo(1) // result1 does not: {a: 1, b: 1} & {c: 1}
Run Code Online (Sandbox Code Playgroud)
如果将鼠标悬停在 上,您可以看到工具提示中result有一个很好的 type ,但有一个丑陋的 type 。{a:1,b:1} …