[英]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.