Viki

Viki 写东西的地方

努力上进且优秀
github
email
x
steam
bilibili
douban

让 TS 类型 "cat" | string 支持补全提示

问题描述#

考察以下 TS 类型。

type Animal = "cat" | "dog" | string;

正常情况下,我们可能会按上面的方式来写,但是这在 vscode 上得不到良好的补全提示。

const animal: Animal = ''; // 输入引号后没有补全提示

解决方案#

为了解决这个问题可以采取以下两种方式来实现。

// 方案一 使用 `string & {}` 替代 `stirng`
type Animal = "cat" | "dog" | (string & {});

// 方案二 使用 Omit 手动从 `string` 中排除类型
type Animal = "cat" | "dog" | Omit<string, "cat" | "dog">

const animal: Animal = ''; // 输入引号后可以看到正确的补全提示

结果#

之前(没有补全提示)#

image

之后(完善的补全提示)#

image

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。