ReasonML(https://reasonml.github.io/)和TypeScript(https://www.typescriptlang.org/)之间有什么权衡?
我对ReactJS很有经验,现在我正在努力学习ReasonML.但是我一直在努力理解的一件事是如何使用React/Reason导入npm包.
我不清楚网站上的说明(https://reasonml.github.io/guide/javascript/interop/).
那么,如果我有一个React/Reason项目并且想要使用npm包,我该怎么办呢?如何使用Reason lang导入它?
一段时间的密集搜索为我提供了一些示例,其中人们在一个代码中使用两种类型的运算符,但通常它们看起来就像两种做某件事的方式,甚至具有相同的名称
我有以下文件夹结构
--| button
--|--| button.re
main.re
Run Code Online (Sandbox Code Playgroud)
在我的bsconfig.json
,使用此处的快速入门指南.我在配置中有以下键/值:
"sources": [
"src/"
]
Run Code Online (Sandbox Code Playgroud)
它只针对main.re文件.我尝试了一些传统的配置选项*.re
,但无济于事.如果我想定位所有子目录,我该怎么做?谢谢.
我正在学习Reasonml,我在标准库中找不到任何函数,而Bucklescript Js模块也没有.有没有比使用原始javascript更好的选择?
现在我用这个功能实现它:
__CODE__
我正在编写一个节点应用程序,我想在其中混合Reason和原始JavaScript.
bucklescript文档中的这一部分描述了它
当用户拥有一个现有的JS项目时,将JS文件输出到与vanilla JS相同的目录中是有意义的,该模式添加了一个被调用的密钥,
in-source
以便在ML文件旁边生成JS文件.
我假设这是在bsconfig.json
文件中?但是钥匙应该有什么价值?架构文档未提及此选项.
我正在运行Bucklescript版本1.9.1 - 所以功能应该可用(从1.9.0开始提供).
我该如何使用该in-source
选项?
我的bsconfig.json
文件看起来像这样:
{
"name": "re-server",
"version": "0.1.0",
"bsc-flags": ["-bs-super-errors"],
"in-source": true, // I tried adding the key here
"sources": [{
"dir": "src",
"in-source": true // I tried adding the key here
}
],
"bs-dependencies" : [
"bs-express"
]
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试用 reasonML 编写一个命令行工具。所以我#! /usr/bin/env node
在第一行插入了一个shebang( ),但是编译器编译失败。如何在编译输出中添加shebang?
我是理性反应的新手.我正在尝试将版权符号放在react-reason组件中.我试过了
<span >(ReasonReact.stringToElement("©"))</span>
Run Code Online (Sandbox Code Playgroud)
但这并没有给我©符号.
是否有可能不导出某些不应由包消费者直接使用的内部模块?
假设我有一个1 -> n
关系:一个待办事项可以有很多(或零)个笔记,而一个笔记可以有零个或一个待办事项。我怎样才能在 ReasonML 中实现这种关系?(绑定外部库)
这是我目前所带来的(这当然不起作用)
module Note = {
module Attributes = {
[@bs.deriving abstract]
type t = {
[@bs.optional]
id: float,
[@bs.optional]
text: string,
[@bs.optional]
todo: Todo.Attributes.t,
};
};
};
module Todo = {
[@bs.deriving abstract]
type t = {
[@bs.optional]
id: float,
[@bs.optional]
title: string,
[@bs.optional]
completed: bool,
[@bs.optional]
notes: array(Note.Attributes.t),
};
};
let todo = Todo.Attribute.t(~title="hello");
Run Code Online (Sandbox Code Playgroud)
如果 Note 和 Todo 在一个文件中,并且在单独的文件中怎么办?
bucklescript ×10
reason ×10
ocaml ×3
bsconfig ×1
module ×1
pipeline ×1
reason-react ×1
shebang ×1
typescript ×1
unicode ×1