首頁  >  文章  >  web前端  >  ReScript 還沒出現

ReScript 還沒出現

Patricia Arquette
Patricia Arquette原創
2024-10-02 14:18:30440瀏覽

身為受 ML 啟發的語言的粉絲,我總是覺得 ReScript 很有趣。隨著 async-await 最近被添加到該語言中,是時候 ReScript 大放異彩了嗎?

看起來確實很誘人:

...您可以選擇 ReScript 並存取龐大的 JavaScript 生態系統和工具,就​​像您早已了解 ReScript 一樣1

不會強迫您搜尋其他人製作的預製綁定庫。 ReScript 不需要 TypeScript 的 DefinelyTyped 等價物。 2

這個專案的目標是什麼?
我們的目標是為 JavaScript 平台提供最佳的類型化語言體驗。 3

哇,所以它們為 JavaScript 平台提供了最好的類型化語言體驗,而這一切都不需要預先製作的綁定!讓我們來嘗試一下吧!

當我們嘗試做最基本的事情時,我們很快就碰壁了:

ReScript is not there yet

嗯..為什麼 getElementById 不在文件中?文件類型是什麼?

ReScript is not there yet

這張圖片是 ReScript 文件中關於它的所有內容。沒有 Dom.document 的定義。 F12 引導我們進入一串空類型定義,因此 Dom.document 看起來確實像是 JS 文件的簡單別名,僅此而已。

等等,所以我確實需要預製綁定? 「不強迫你搜尋別人製作的預製綁定函式庫」怎麼了?

輸入 rescript-webapi npm 套件,綁定到 DOM 和其他瀏覽器特定的 Web API。 。我按照說明和編譯器錯誤進行操作,其中一個錯誤告訴我“bsconfig.json”中可能存在配置問題,即使該檔案現在稱為“rescript.json”。我最終成功了。

它的外觀如下:

let elem = document->Document.getElementById("id")
// For the uninitiated, -> is the pipe operator.
// a->foo means foo(a)
// a->foo(b) means foo(a, b)
// The above code is therefore equivalent to
let elem = Document.getElementById(document, "id")

您會注意到該文件。不會顯示任何程式碼完成,因為它基本上仍然是非類型化的。我必須知道要呼叫什麼模組和模組函數。

所以 IDE 不會幫助我輸入正確的內容,但它會為我提供有關我正在調用的函數的詳細資訊嗎?不完全是:

ReScript is not there yet

作為參考,這裡是開箱即用的 TypeScript:

ReScript is not there yet

資訊錯誤、範例連結、詳細類型定義。謝謝。這節省了我的時間和精力,在我打字時教我正確的方法——這是我喜歡靜態類型的主要原因之一。我只是無法透過 ReScript 得到這個。

如果與 DOM 互動 - 創建 JavaScript 的原因 - 不被認為重要到足以保證內建綁定,我想我已經看夠了。

ReScript 在 2024 年準備好了嗎?不。它的官方文件做出了看似完全誤導的崇高承諾。我想如果您要編寫大量主要與其他 ReScript 程式碼互動的 ReScript 程式碼,ReScript 會很有用。但我們不能簡單地忽視「龐大的 JavaScript 生態系統」。想像一下不支持 BCL 的 F#。幸運的是,F# 及其工具旨在無縫使用 C# 類型和文件。當然,一定有方法可以在 ReScript 中利用 DefinelyTyped。在 ReScript 做到這一點之前,我認為它無法與 TypeScript 真正競爭。

以上是ReScript 還沒出現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn