簡體   English   中英

流類型注釋和有效的JavaScript源

[英]Flow type annotations and valid JavaScript source

我正在使用Facebook的新Flow Type檢查系統。

Flow中,遇到Underscore ,看來他們在更改此JavaScript代碼

var root = this;

進入這個

var root: any = this;

但這不再是有效的JavaScript,對吧? 我知道為什么外部接口文件會很有用,但是如何將類型注釋直接添加到有效的JavaScript源中?

以前,Google Closure編譯器和其他用於JS注釋的項目。

從Flow 0.4.0開始,您可以將Flow語法放入注釋中。 這樣可以解決您的問題。 因此,您的示例如下所示:

var root/*: any*/ = this;

這樣可以生成有效的JavaScript語法,而無需編譯您的代碼。

可以在這里找到更多詳細信息: http : //flowtype.org/blog/2015/02/20/Flow-Comments.html

您是對的,該代碼不再是有效的JavaScript。 這意味着,當您在someJavascriptFile.js中使用Flow時,您必須執行一個程序,該程序將從someJavascriptFile.js中刪除Flow代碼,這稱為轉堆。 使用哪個編譯器取決於您運行javascript的方式,並且可能會隨着時間而變化,因此我不會鏈接到任何編譯器。

您也可以將流類型包裝到注釋中,例如。 var name /*:string*/ = "Hello flow." ,它是有效的javascript ,但我認為該代碼更難閱讀。

從理論上講,JavaScript引擎有一天可以原生支持Flow解析,但這還有很長的路要走。

我錯過了運行流代碼 ,其中討論了添加構建步驟以刪除類型注釋的步驟。

您可以使用JSX轉換工具 (React工具的一部分)將文件轉換為純JavaScript

我還發現了可替代的flow-typestrip

我更喜歡每個模塊的外部接口文件,因為您可以避免引入構建步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM