Ana içeriğe atla

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

Bu blogdaki popüler yayınlar

Vue.js, Vuetify, Typescript ve Jest ile unit test yazmak

Vue.js, Vuetify, Typescript ve Jest ile unit test yazmak Writing unit test with Vue.js, Vuetify, Typescript and Jest
Geliştirmekte olduğumuz proje kapsamında Vue.js, Vuetify ve Typescript ile çalışmaktayız. Burada unit test yazmak istediğimizde biraz araştırma yapmak, ve çıkan problemlerle boğuşmak zorunda kaldık. Bu yazıda bulduğumuz çözümler ile konuyu anlatmak istiyorum :
Öncelikle unit test aracı olarak jest kullanmaya karar verdik. Vue.js Cli tarafından öncelik Mocka'ya verilmiş olsada bizim projemizde onu açlıştırmak hiç kolay olmadı. Sıkıntı typescript kullanmamızdan kaynaklanmakta. bu iş için kullanacağımız araçların hepsi typescript destekli değil maalesef. Gelelim adımlara :
1. npm ile bazı paketleri projemize eklememiz lazım :
npm i -D jest@23.6.0 jsdom@13.2.0 jsdom-global@3.0.2 ts-jest@23.10.5 @vue/test-utils @vue/cli-plugin-unit-jest @vue/cli-plugin-typescript

Burada önemli nokta jest sürümünün 23'de kalması. Çünkü ts-jest şu anda (11.02.2019 itibari ile) sadece je…

MongoDB'yi Çalıştırmak

MongoDB'yi development makinamıza kurduktan sonra (kurulumu şu makalemde görebilirsiniz), artık onunla çalışmamız lazım. Ancak bunun için öncelikle mongo db 'nin çalışır hale gelmesi gerekiyor. Bu işlem 2 şekilde olabilir.
1. ihtiyaç olduğunda mongodb'yi elle çalıştırabilirsiniz
2. mongodb yi windows servis olarak çalıştırıp, bilgisayar her çalıştığında otomatik olarak çalışmasını sağlayabilirsiniz.

Öncelikle mongodb'yi command prompt'dan çalıştırabilmek için bir ayar yapmamız lazım. Bunun için önceki makaleme bakabilirsiniz : http://www.alperkonuralp.com/2016/10/mongodbyi-command-prompttan-calstrmak.html

Şimdide MongoDB'nin veri tabanı dosyalarını depolayabilmesi için gerekli olan dizinleri oluşturalım.
1. Command Prompt açılır. ( bunun için start tuşunda cmd yazıp enter'e basmanız yeterli olacaktır. Ancak yönetici yetkileri ile açmak daha iyi olacağı için cmd yazdığınızda görünen programa sağ tıklayıp yönetici olarak aç seçeneği ile açmanız daha iyi olaca…

Ubuntu 14.10'da Uyku Moduna geçme problemi

Ubuntu'yu 14.10'a yükselttikten sonra Laptop'un kapağını kapattığımda sistemin uyku moduna geçmediğini farkettim. Bu konuda bir araştırma yaptım ve bulduğum şu sayfadaki çözüm işimi çözdü.

1. Terminal ekranını açın(ctrl+alt+t) ve aşağıdaki kodu girin :
sudo nano /etc/systemd/logind.conf 

2. Bu dosyada :
#HandleLidSwitch=suspend 
şeklinde bir satır göreceksiniz. Bu satırın başındaki # işaretini kaldırım. Nano'dan çıkmak için Ctrl+x yapın, sonrada y tuşuna basın. İşte hepsi bu kadar.

After upgrade my laptop to Ubuntu 14.10, when I close the lit, laptop isn't gone to suspend. I was search the google for this issue, I found the solution in this page.  This solution is :

1. Open the terminal(ctrl+alt+t) and write this code :
sudo nano /etc/systemd/logind.conf 

2. In this window, find this line :
#HandleLidSwitch=suspend
remove this # chars at the begin of line. For Save and close nano, press ctrl+x and y .

That is it.