javascript - TypeScript Jest'te Nesne ile Yeni Hata Fırlatma


TypeScript'te hata detaylarını içeren bir nesne ile yeni bir Hata (Error) nasıl fırlatılır?

Typescript kodunu test etmek için jest kullanıyorum ve aşağıda gösterildiği gibi yeni bir Hata fırlatmak istiyorum:

mock.spyOn(AppUtils,'util_plane').mockImplementation(() => {
        throw new Error("Error Message",{status:403})
})

Bunu yaptığımda, derleyici şöyle bir hata veriyor:

Expected 0-1 arguments, but got 2.ts(2554)

Cevap #1

Hata yapıcısı {status: number}'ın kendisine geçirilmesini beklemiyor. Özel bir hata sınıfı oluşturup kullanabilirsiniz:

class CustomError extends Error {
    status: number;

    constructor(message: string, { status }: { status: number }) {
        super(message);
        this.status = status
    }
}

// ...

throw new CustomError('Error Message', { status: 403 })

Veya hatayı oluşturduktan sonra status özelliğini atayabilirsiniz:

throw Object.assign(new Error('Error Message'), { status: 403 })

İlgili makaleler