Sabit Değer Çıkarımı
Sabit Değer Çıkarımı, bir değişkenin veya parametrenin türünün değerine göre çıkarılmasına olanak tanıyan bir TypeScript özelliğidir.
Aşağıdaki örnekte TypeScript’in, değeri daha sonra değiştirilemeyeceği için x’i sabit değer türü olarak değerlendirdiğini; buna karşılık y daha sonra herhangi bir zamanda değiştirilebildiği için türünün string olarak çıkarıldığını görebiliriz.
const x = 'x'; // Bu değer değiştirilemediği için 'x' sabit türület y = 'y'; // Bu değeri değiştirebildiğimiz için string türüAşağıdaki örnekte, TypeScript değerin daha sonra herhangi bir zamanda değiştirilebileceğini düşündüğünden o.x türünün string olarak (a sabit değeri olarak değil) çıkarıldığını görebiliriz.
type X = 'a' | 'b';
let o = { x: 'a', // Bu daha geniş bir string türüdür};
const fn = (x: X) => `${x}-foo`;
console.log(fn(o.x)); // 'string' türündeki argüman 'X' türündeki parametreye atanamazGördüğünüz gibi, X daha dar bir tür olduğundan o.x, fn’ye geçirildiğinde kod hata verir.
Bu sorunu const veya X türüyle bir tür onaylaması kullanarak çözebiliriz:
let o = { x: 'a' as const,};veya:
let o = { x: 'a' as X,};