【问题标题】:Exclude generic from union type in typescript从打字稿中的联合类型中排除泛型
【发布时间】:2021-02-25 01:14:45
【问题描述】:

我有一个联合类型如下:

type countries = "USA" | "Canada" | "UK" | "Australia" | string;

我想从这个联合中删除string,这样就只剩下字符串文字了。

理想情况下,它对字符串文字是不可知的(而不是使用像 Pick 之类的东西),以便可以在父级更新值。 我已经尝试过 Omit 和 Exclude 实用程序类型,但都没有成功。

这可能吗?

【问题讨论】:

  • 你不能 - type countriesstring 的唯一类型,此时字符串文字类型会丢失。

标签: typescript


【解决方案1】:

很遗憾,这是不可能的。方式 "USA" | "Canada" | "UK" | "Australia" | string 是一个字符串。所以没有什么可以排除或选择的。

type countries = stringtype countries = "USA" | "Canada" | "UK" | "Australia" | string; 都是相同类型的字符串

您必须删除字符串类型才能创建文字类型的联合:

type countries = "USA" | "Canada" | "UK" | "Australia";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2021-11-26
    相关资源
    最近更新 更多