Yazılım Geliştirme
1 dakika okuma
TypeScript ile Tip Guvenli Backend
TypeScript ile Node.js backend: tip tanimlari, interface, generic ve zod ile runtime dogrulama.
E
Emre Cihan Neden TypeScript
JavaScript'in tip guvensizligi buyuk projelerde sorun cikariyor. TypeScript derleme zamaninda hatalari yakalar.
Kurulum
npm init -y
npm install typescript ts-node @types/node
npx tsc --init
Temel Tipler
// Primitive
const ad: string = 'Emre';
const yas: number = 30;
const aktif: boolean = true;
// Array
const sayilar: number[] = [1, 2, 3];
const isimler: Array<string> = ['a', 'b'];
// Tuple
const koordinat: [number, number] = [41.0, 28.9];
// Union
let id: string | number = 'abc';
id = 123; // gecerli
Interface ve Type
interface Kullanici {
readonly id: number;
email: string;
ad: string;
rol?: 'admin' | 'user'; // optional union
}
type ApiYanit<T> = {
basarili: boolean;
veri: T;
hata?: string;
};
// Generic fonksiyon
function ilk<T>(dizi: T[]): T | undefined {
return dizi[0];
}
const ilkSayi = ilk([1, 2, 3]); // number
const ilkIsim = ilk(['a', 'b']); // string
Zod ile Runtime Dogrulama
npm install zod
import { z } from 'zod';
const KullaniciSchema = z.object({
email: z.string().email(),
sifre: z.string().min(8),
yas: z.number().int().min(18).max(120),
});
type Kullanici = z.infer<typeof KullaniciSchema>;
// API handler
async function kayit(body: unknown): Promise<void> {
const sonuc = KullaniciSchema.safeParse(body);
if (!sonuc.success) {
throw new Error(sonuc.error.message);
}
const kullanici: Kullanici = sonuc.data;
// kullanici.email garantili string
}
TypeScript + Zod kombinasyonu compile time ve runtime guvenligini birlikte saglar.
Paylaş:
Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı
İlgili yazılar