让 TS 类型 "cat" | string 支持补全提示
·1 分钟·已发布 764 天,请注意时效性
问题描述
考察以下 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 = ''; // 输入引号后可以看到正确的补全提示
结果#
之前(没有补全提示)

之后(完善的补全提示)


Cheers! 🍻
—— 本文完 ——