相关疑难解决方法(0)

如何查看 Typescript 类型的完整扩展合同?

如果我有一个看起来有点像这样的类型集合,只会更详细:

type ValidValues = string | number | null
type ValidTypes = "text" | "time" | "unknown"

type Decorated = {
  name?: string | null
  type?: ValidTypes
  value?: ValidValues
  title: string
  start: number
}

type Injected = {
  extras: object
}

// overriding the types from Decorated
type Text = Decorated & Injected & {
  name: string
  type: "text"
  value: string
}
Run Code Online (Sandbox Code Playgroud)

我的实际代码还有更多内容,但这显示了核心思想。我不想必须相信自己才能使类型之间的关系恰到好处。Text在所有类型代数之后,我想要工具向我展示“评估”的类型定义。

因此,对于上面的示例,我希望 中指定的字段Text将覆盖该Decorated类型中先前的声明,并且我假设的工具提示的输出(我希望)会显示如下内容:

{
  name: string
  type: "text"
  value: string
  title: string …
Run Code Online (Sandbox Code Playgroud)

algebraic-data-types typescript visual-studio-code

41
推荐指数
2
解决办法
4532
查看次数

如何使 VS Code 在鼠标悬停时显示完整的 TypeScript 类型定义?

我正在将 React 项目从使用 JSX 转换为使用 TSX 文件。

我需要一个常量类型的完整预览:

const canvasProps = {
  setPorts,
  setBoxes,
  setLines,
  selected,
  setSelected,
  actionState,
  setActionState,
  ... // and more
};
Run Code Online (Sandbox Code Playgroud)

将鼠标悬停在canvasProps我得到预览:

const canvasProps: {
    setPorts: React.Dispatch<React.SetStateAction<{
        shape: string;
        id: string;
        name: string;
        port: portType;
        ref: any;
    }[]>>;
    setBoxes: React.Dispatch<React.SetStateAction<BoxType[]>>;
    ... 13 more ...;
    toggleFlowVisibility: (flow: any) => void;
}
Run Code Online (Sandbox Code Playgroud)

我需要获取该常量的完整类型定义,这意味着查看额外的 13 种类型。

(我需要这个,因为我需要声明 的属性React.Context,这取决于尚未声明的函数(在函数组件内))

那么如何才能不费力地获得完整的类型定义呢?

visual-studio-code

14
推荐指数
1
解决办法
7912
查看次数

是否可以在 VSCode(或其他地方)中显示打字稿类型/接口的完整计算类型

当您将鼠标悬停在 VSCode 中的类型上时,它会显示该类型,但如果您有更大的类型,它通常会将其显示为{ a: string; ... 24 more ...; z: string }. 是否有可能让它以某种方式显示完整类型?

类似地,如果您有两种类型的交集,那么有时它只会将其显示为Type1 & Type2而不是显示完整类型,或者如果您使用Pick则它会显示Pick<Type1, "a" | ... 23 more ... | "z">...

在所有这些情况下,我认为检查我对 typescript 正在做什么以便有时能够看到完整类型的理解会很有用,并且想知道是否有办法做到这一点,无论是通过 vscode 还是通过 typescript 的工具。

typescript visual-studio-code

13
推荐指数
1
解决办法
1626
查看次数