# TypeScript kullanarak Bun:test ile Hata Fırlatılmasını Beklemek - ts(2348)

## Basit Örnek

* `() =>` kullanımında dikkatli olun

```javascript
// someFunction.ts
export function someFunction(shouldThrow: boolean): void {
	if (shouldThrow) {
		throw new Error("Ben bir hata'yım!")
	}
}

// someFunction.test.ts
import { someFunction } from "./someFunction"

test("bir hata fırlatmalı", () => {
	expect(() => someFunction(true)).toThrow("Ben bir hata'yım!")
})

test("bir hata fırlatmamalı", () => {
	expect(() => someFunction(false)).not.toThrow()
})

```

## Async Örnek

* `Promise` için `rejects` kullanın

```typescript
it("NotFoundError döndürmeli", () => {
	expect(getUserData("olmayanUserId"))
		.rejects.toBeInstanceOf(NotFoundError)
})

```

## Özel Hata Türleri ile İleri Kullanım

* Uyarıyı önlemek için `CustomError` yerine `new CustomError()` kullanın
* `() =>` kullanımında dikkatli olun

```javascript
// CustomError.ts
export class CustomError extends Error {
	constructor(message: string) {
		super(message)
		Object.setPrototypeOf(this, CustomError.prototype)
	}
}

// someFunction.ts
import { CustomError } from "./CustomError"

export function someFunction(shouldThrow: boolean): void {
	if (shouldThrow) {
		throw new CustomError("Ben özel bir hatayım!")
	}
}

// someFunction.test.ts
import { someFunction } from "./someFunction"
import { CustomError } from "./CustomError"

test("özel bir hata fırlatmalı", () => {
	expect(() => someFunction(true)).toThrow(new CustomError())
	// Uyarıyı önlemek için `new CustomError()` yerine `CustomError` kullanın
	// `() =>` kullanımında dikkatli olun
})

```

## **Value of type "typeof X' is not callable. Did you mean to include 'new'? ts(2348)**

* Gösterilen hatayı önlemek için `new AlreadyAdjusted()` kullanın
* Bu hata calisma sirasinda sorun teskil etmez

```javascript
export class AlreadyAdjusted extends Error {
	constructor() {
		super("Zaten ayarlandı")
	}
}

```

![jRe9NPT.png](https://i.imgur.com/jRe9NPT.png)

![6tNPvSi.png](https://i.imgur.com/6tNPvSi.png)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.yemreak.com/arsiv/programming/typescript-kullanarak-buntest-ile-hata-firlatilmasini-beklemek---ts2348.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
