2015-02-03 20 views
8

Kasım 2014'te, 3 ay önce, Facebook açık kaynaklı yeni bir komut satırı aracı, "Flow" adı verilen bir statik tip denetleyicisi. Şimdi eski, mevcut javascript dosyalarından birkaçında çalıştırmak istiyorum. Bunlar jQuery kitaplığına başvurular içerir.Akış için "JQuery Arayüz dosyası" (Facebook'tan JavaScript için Statik Tip Kontrol Cihazı)?

JS dosyalarım, statik tip denetimi dikkate alınarak yazılmamış. ancak dahil sonra/* @flow */Ben bu komut ile akışını çalıştırmak dosyanın üst kısmında:

flow myfile.js 

Sonuç:

/var/www/myfilejs:70:12,17: identifier jQuery 
Unknown global name 
Found 1 error 

Ben yolu Anladığım kadarıyla jQuery'yi Flow'a yazın, tür denetimi işlemi create an "interface file"'a yapılır.

Bunu jQuery kitaplığı için henüz yapan oldu mu? (JQuery 1.9 kullanıyorum)

+1

[Gelecekteki planlar sayfasında] (http://flowtype.org/docs/coming-soon.html), Facebook, "Ortak" için varolan bir TypeScript declaration files (.d.ts) dönüştürmek için destek " Flow bildirimleri için DefinitelyTyped.org kütüphaneleri. " Bu harika bir çözüm olurdu, ancak henüz gerçekleştiğine dair hiçbir işaret göremiyorum. – danvk

cevap

1

Gerçek bir jQuery akış arabirimi tanımı istiyorsanız, https://github.com/marudor/flowInterfaces'da verilene bakabilirsiniz. senin .flowconfig dosyaya aşağıdaki

npm install --save-dev iflow-jquery 

veya

yarn add --dev iflow-jquery 

Ve sonra ekleyin:

ile kurun Bundan sonra

[libs] 
node_modules/iflow-jquery/index.js.flow 

, akış türlerini çıkaracaktır jquery işlevlerine sağladığınız parametreler ve yanlış türleri geçtiğinizde sizi uyarır.

3

Bu, "flow_lib" adını verdiğim bir klasörde jQuery.js'u aramayı seviyorum arabirim dosyasıdır. Bu klasör herhangi bir yerde olabilir.

[ignore] 

[include] 

[libs] 
<path-to-folder>/flow_lib 

[options] 

Not: Böyle klasörü dahil, senin .flowconfig yılında

declare module "jQuery" { 
    declare function $(obj: any): any; 
} 

var $ = require('$').$; 

:

Bu jQuery.js arayüz beyanı için içeren bir koddur Bu yöntem için kontrol etmez gerçek jQuery özellikleri. Kodunuzdaki $ ile ilgili akış uyarıları ve hatalarından kurtulmak için hızlı bir çözümdür. Daha spesifik olmak isterseniz, aşağıdaki gibi kullanın: https://github.com/solnetdigital/flow-interfaces-jquery/blob/master/interfaces/jquery.js