假设存在以下一般情况:

type WheneverPossible<T extends "boy" | "girl"> =  ...

我想有条件地判断这个通用部件,如下所示:

type WheneverPossible<T extends "boy" | "girl"> =  T === "boy" ? { numOfBalls: number } : { numOfDolls: number }

有没有可能在Typescript 中做这样的事情?

推荐答案

只需使用关键字extends即可

type WheneverPossible<T extends "boy" | "girl"> =  T extends "boy"
  ? { numOfBalls: number }
  : { numOfDolls: number }

playground

Typescript相关问答推荐

Typescript问题和缩减器状态不会在单击时添加用途.属性'状态和调度'不存在于userContextType类型上'|null'

排序更改数组类型

Angular中的其他服务仅获取默认值

动态调用类型化函数

React typescribe Jest调用函数

如何推断哪个特定密钥与泛型匹配?

使某些(嵌套)属性成为可选属性

TypeScrip-将<;A、B、C和>之一转换为联合A|B|C

如何重构长联合类型?

<;T扩展布尔值>;

从子类集合实例化类,同时保持对Typescript中静态成员的访问

vue-tsc失败,错误引用项目可能无法禁用vue项目上的emit

@TANSTACK/REACT-QUERY中发生Mutations 后的数据刷新问题

专用路由组件不能从挂钩推断类型

有没有办法在Zod中使用跨字段验证来判断其他字段,然后呈现条件

在组件卸载时try 使用useEffect清除状态时发生冲突.react +打字

如何将spread operator与typescripts实用程序类型`参数`一起使用

使用RXJS获取数据的3种不同REST API

两个接口的TypeScript并集,其中一个是可选的

如何根据Typescript 中带有泛型的对象嵌套键数组获取数组或对象的正确类型?