当前位置: 首页 > 知识库问答 >
问题:

前端 - 如何写下面的 typescript 类型?

况经纬
2024-09-01
type ActionType = "one" | "two" | "three"
// 第一种写法
interface Action {
  type: ActionType
  num?: number
}
// 第二种写法
type Action2 = {
  type: 'one'
} |  {
  type: 'two'
} |  {
  type: 'three'
  num: number
}

Action 类型有一个 type 字段,但是只有在类型为 three 时才需要 num 字段。第一种写法比较简单,但是表达不准确。而第二种表达准确但是写起来繁琐。
实际使用中 type 类型有十多种,大部分结构是一样的,只有一两个类型有特殊的结构。有什么写法写起来不用太繁琐但又表达准确?

共有1个答案

谢阳成
2024-09-01
type Action = {
  type: 'one' | 'two' | 'others'
} | {
  type: 'three',
  num: number
} | {
  type: 'four',
  str: string
}
 类似资料:
  • 在写单元测试中,我想抽象一个通用的函数,避免重复书写。函数的定义如下: 但是我不知道如果建立 fn 函数参数的类型和 source 类型之间的联系。 请问要怎么写才可以让 source 的类型等于 fn 参数类型的数组?

  • 如上面代码所示,需要指定 arr 参数的数据类型,这个数据数据类型是 p1 或者 p2 参数的 key.请问这个改如何指定呢。

  • 想实现value是string那么val就是string,value是string[]那么val就是string[]

  • LineSeries['areaStyle']的类型是AreaStyle | undefined 报错:类型“AreaStyle | undefined”上不存在属性“color”。 如何通过 LineSeries使用color属性的类型呢?

  • 给定一条数据结构(API数组里面的个数是未知的)如下所示 如何推导出类似这样的类型 即 name 作为key, 如果存在table即为boolean类型,否则为unknown类型 ts的大神们,这个该如何写啊,百度,谷歌都折腾了,还问了gpt也不行,就是值推不出来 我写的是这样的

  • 我在玩TypeScript中的条件类型。我想用条件返回类型编写一个函数。如果函数被传递一个字符串,它将返回一个名称,否则它将返回一个Id。 我在返回语句中得到以下错误: 我错过了什么?Thnx! 编辑:直接摘自Anders Hejlsberg在Build 2018上的演讲:https://youtu.be/hDACN-BGvI8?t=2241 他甚至说“我们不再需要写函数重载了…” 如果我将代码更

  • 本人前端,公司给了我一个 node.js + TypeScript 写成的后端项目,给的时间大概是一周。 要求我在这段时间里: 自己要理解项目里的某两个重点接口的逻辑; 可以向他人讲解这两个重点接口; 能用 postman 调通这两个重点接口; 可以在以后对这两个重点接口进行扩展(深度掌握这两个接口)。 本人目前连这个项目都不知道怎么启动,也没有前辈可以指导我。数据库暂时还不知道要怎么放到本地,不

  • 所以我学会了如何在打字稿中进行扩展: 但是如何从中制作一个吸气剂?例如: 所以我可以在代码someArray.lastIndex中调用is作为getter? 我找到了这个答案,但代码无法为泛型类型编译,这样写也很丑陋,但也许我在打字稿中要求太多:如何使用 get 属性扩展打字稿类?