2017-10-18 41 views
11

10 sayfalık bir sitem var, bu bir Typescript dosyasını paylaşıyor, ayrıca her sayfanın kendine özgü bir Typescript dosyası var. Bir sayfa bir JQuery eklentisi, timepicker sahiptir, bu yüzden kullanarak JQuery nesne uzatmak:Tek bir dosya için nasıl uzar?

interface JQuery { 
    timepicker(options:any):JQuery; 
} 

Ancak JQuery nesne üzerinde timepicker olması diğer typescript dosyalarının herhangi istemiyoruz. Sadece bu dosya için nasıl uzatabilirim?

Bir ad alanı içinde JQuery uzatmama izin vermiyor.

Modüller yardımcı olabilir mi? Herhangi bir şeyi ithal etmeye veya dışa aktarmaya gerek yok, bu yüzden uygun olduğunu veya modüllerin nasıl kullanılacağını bilmiyorum.

+0

Her sayfanın kendi Typescript dosyası varsa, neden o arayüz çizgisini sadece ihtiyacı olan belirli bir sayfaya eklemiyorsunuz? Bu arada, kesinlikle jQuery nesnesini jQuery olarak da adlandırılan bir arabirim yazarak genişletmiyorsunuz :) – Kokodoko

+0

@Kokodoko Yaptığım şey bu, ancak projedeki tüm Typescript dosyaları bu arabirimi görüyor ve "timepicker" değerini gösteriyor. 'JQuery'. – wezten

+1

Muhtemelen "timepicker" arayüzünü gören ve tüm projenize uygulayan sadece IDE'niz. Belki de, sayfalar arasında ayrım yapmak ve yalnızca bazı ad alanlarında bazı arabirimlere sahip olmak için ad alanlarını kullanabilirsiniz. ad alanı page10 {interface bla {}} ' – Kokodoko

cevap

0
Sen Sayfa işaretlemesindeki şunlardır anlamıyla yapabilirsiniz

:

<script src="//code.jquery.com/jquery-3.2.1.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.js"></script> 
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/timepicker/1.3.5/jquery.timepicker.min.css"> 

Ve sonra sadece bunu jQuery ele almak için aşağıdaki hile yararlanarak zaman seçici ile ne olursa olsun:

declare var jQuery: any; 

export class Whatever { 
    private timePicker = jquery.timePicker 
} 

Bu süper hacky, ama bence işe yarayacak.

+0

O zaman tüm “JQuery” nesneleri için zekaya sahip değilim. – wezten

+0

@wezten Bu, örneklerinizi gerçek çalışma zamanı açısından temiz tutacaktır. IDE'niz açısından, bu tamamen ya da hiç bir şey olma eğilimindedir. JQuery dokümanları süper net ve kullanımı kolaydır. –