Viki

Viki 写东西的地方

努力上进且优秀
x
github
email
bilibili

讓 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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。