構文の更新: errors.AsType を使用した型安全なエラーのアンラップ

errors.Aserrors.AsType (型安全な方法でエラーをアンラップし、型付きの結果を直接返す Go 1.26 で導入されたジェネリック関数) に置換できる使用箇所を報告します。

errors.AsType は別の変数を宣言し、その変数のポインターを渡すのではなく、型付きの結果を直接返します。 それによってコードが短くなって可読性が向上するため、不正なポインターの使用に関連する一般的なミスを防ぐことができます。

例:


var cfgErr ConfigError        // 不正: ポインターではなく、値である
if errors.As(err, &cfgErr) {  // パニック
    fmt.Println("Config error on field:", cfgErr.Field)
} else {
    fmt.Println("errors.As: could not detect ConfigError")
}

ここでは、errors.As には事前に宣言された変数とその変数のポインターが必要です。

コードを単純化して型安全性を向上させるには、「'errors.AsType' に置換」クイックフィックスを使用します。

クイックフィックス適用後:


if cfgErr, ok := errors.AsType[*ConfigError](err); ok {
    fmt.Println("Config error on field:", cfgErr.Field)
} else {
    fmt.Println("errors.As: could not detect ConfigError")
}

この形式では単一の式でエラーがアンラップされ、正しく型付けされた値が返されるため、手動でのポインターの処理が不要になります。