Typescript window objesine property ve metod eklemek

Typescript bir çok konuda başarılı bir araç olmasına rağmen, javascript'te rahatlıkla yaptığımız şeyler konusunda katı kurallar getirebiliyor. Bu makalede window objesine nasıl property ve metot ekleyebileceğimizi gösterdim.

Mesela, window objesi üzerine javascript'te aşağıdaki gibi bir kod yazmak çok mümkünken, Typescript'te konu biraz daha sıkıntılı:

// Javascript 
window.myProperty = 'demo';

// Typescript 
(window as any).myProperty = 'demo';

Ancak bu noktada Typescript için bir ayarlama yaparak bu durumdan kurtulabilirsiniz : 1. shims-window.d.ts isminde bir dosya oluşturun. 2. Aşağıdaki kodu dosyanın içine yapıştırın:
export {}; // this file needs to be a module

declare global {
  interface Window {
    myProperty?: string;
  }
}
Window interface'i içine istediğiniz property ve metot'u ekleyebilirsiniz. Ayrıca kendi tiplerinizi de kullanmanız mümkün. Örnek olarak User isminde bir tipiniz var ise :
import { User } from './user';
export {}; // this file needs to be a module

declare global {
  interface Window {
    user?: User;
  }
}

Yorumlar

Popüler Yayınlar