相关疑难解决方法(0)

Typescript从元组/数组值派生联合类型

说我有清单 const list = ['a', 'b', 'c']

是不是可以从这个值的联合类型派生出来的'a' | 'b' | 'c'

我想要这个,因为我想定义只允许来自静态数组的值的类型.而且我还需要在运行时枚举这些值,所以我使用数组.

示例如何使用索引对象实现:

const list = ['a', 'b', 'c']

'a' | 'b' | 'c'

const list = ['a', 'b', 'c']

但我想知道没有这个索引地图是否可行.

typescript

46
推荐指数
3
解决办法
7956
查看次数

Typescript 中 typeof Array[number] 的含义是什么?

const names = ['jacob', 'master jung', 'kyuhyun'] as const;
type Names = typeof names[number];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我得到了我想要的结果,但我不明白typeof names[number]

Typescript 中的意思是什么typeof Array[number]

typeof typescript

19
推荐指数
2
解决办法
5593
查看次数

TypeScript中的“ keyof typeof”是什么意思?

例:

向我解释keyof typeofTypeScript的含义

enum ColorsEnum {
    white = '#ffffff',
    black = '#000000',
}

type Colors = keyof typeof ColorsEnum;
Run Code Online (Sandbox Code Playgroud)

最后一行等效于:

type Colors = "white" | "black"
Run Code Online (Sandbox Code Playgroud)

但是它是如何工作的呢?

我希望typeof ColorsEnum返回类似的内容"Object",然后keyof "Object"不做任何有趣的事情。但是我显然是错的。

typescript

12
推荐指数
4
解决办法
2746
查看次数

检查变量是否属于 Typescript 中的自定义类型

我正在尝试检查变量是否属于某种类型。

代码:

type GeneralType = SubTypeA | SubTypeB;
type SubTypeA = 'type1' | 'type2';
type SubTypeB = 'type3' | 'type4';

function someFunction(arg1: GeneralType) {
  if (arg1 instanceof SubTypeA) {
    // Do something
  }
  // Continue function
  return arg1;
}
Run Code Online (Sandbox Code Playgroud)

当然,这段代码在第 6 行失败了,因为instanceof它不能用于类型。有没有我可以使用的替代选项,而无需明确检查 的每个可能值SubTypeA

types instanceof typescript

7
推荐指数
1
解决办法
9552
查看次数

如何检查字符串文字类型是否包含 TypeScript 中的值?

我想检查是否strName

是否可以?

/* imagination code */

type Name = 'a1' | 'a2' | .... | 'z100';

function isName(str: string): str is Name {
  switch (str) {
    case 'a1':
    case 'a2':
      // ...
    case 'z100':
      return true;
    default:
      return false;
  }
}

isName('alice') // -> true or false
Run Code Online (Sandbox Code Playgroud)

typescript union-types

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

从枚举值创建 Typescript 类型

我正在寻找一种从 ENUM 值创建 Typescript 类型的方法。目前,我必须手动构造类型并使其与 ENUM 保持同步。

有没有办法从 ENUM 值创建一个类型作为 oneof ?最终结果是当我更新 ENUM 时,类型将自动反映它

enum FRUITS {
    APPLE = 'apple',
    PEAR = 'pear',
    ORANGE = 'orange',
}

// type Fruits = FRUITS;
type Fruits = 'apple' | 'pear' | 'orange';

// This works
const fruit: Fruits = FRUITS.APPLE;
// This also works
const fruit2: Fruits = 'apple';
Run Code Online (Sandbox Code Playgroud)

该类型将在这些场景中使用,因此两者都必须仍然有效:

const fruit: Fruits = FRUITS.APPLE;

const fruit2: Fruits = 'apple';
Run Code Online (Sandbox Code Playgroud)

typescript typescript-typings

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