>웹 프론트엔드 >JS 튜토리얼 >ReScript는 아직 없습니다

ReScript는 아직 없습니다

Patricia Arquette
Patricia Arquette원래의
2024-10-02 14:18:30470검색

ML에서 영감을 받은 언어의 팬으로서 저는 항상 ReScript에 흥미를 느꼈습니다. 최근 언어에 async-await가 추가되면서 이제 ReScript가 빛을 발할 때가 되었나요?

정말 매력적이네요:

... 마치 오랫동안 ReScript를 알고 있었던 것처럼 ReScript를 선택하고 방대한 JavaScript 생태계와 도구에 액세스할 수 있습니다.1

다른 사람이 만든 미리 만들어진 바인딩 라이브러리를 검색하도록 강요하지 않습니다. ReScript에는 TypeScript의 DefinedTyped와 동일한 기능이 필요하지 않습니다.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 및 기타 브라우저별 웹 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가 만들어진 이유가 내장 바인딩을 보장할 만큼 중요하지 않다고 생각된다면 충분히 본 것 같습니다.

2024년에도 ReScript가 준비되나요? 아니요. 공식 문서에는 오해의 소지가 있는 것처럼 보이는 고상한 약속이 나와 있습니다. 다른 ReScript 코드와 주로 상호 작용하는 ReScript 코드를 많이 작성하는 경우 ReScript가 유용할 수 있다고 생각합니다. 그러나 "광대한 JavaScript 생태계"를 단순히 무시할 수는 없습니다. BCL을 지원하지 않는 F#을 상상해 보세요. 다행히 F#과 해당 도구는 C# 형식과 문서를 원활하게 사용하도록 설계되었습니다. ReScript에서 확실히 Typed를 활용할 수 있는 방법이 분명히 있을 것입니다. ReScript가 이를 수행하기 전까지는 ReScript가 TypeScript와 진지하게 경쟁할 수 없다고 생각합니다.

위 내용은 ReScript는 아직 없습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.