問題の説明#
以下の TS の型を検討します。
type Animal = "cat" | "dog" | string;
通常、私たちは上記のように書くかもしれませんが、VSCode では適切な補完のヒントが得られません。
const animal: Animal = ''; // 引用符の後に補完のヒントが表示されません
解決策#
この問題を解決するために、以下の 2 つの方法を採用することができます。
// 解決策1: `string & {}`を使用して`string`を置き換える
type Animal = "cat" | "dog" | (string & {});
// 解決策2: `Omit`を使用して`string`から特定の型を除外する
type Animal = "cat" | "dog" | Omit<string, "cat" | "dog">
const animal: Animal = ''; // 引用符の後に正しい補完のヒントが表示されます
結果#
変更前(補完のヒントが表示されません)#
変更後(改善された補完のヒント)#