小编Dav*_*gel的帖子

如何配置使用从PureScript编译的JavaScript模块的TypeScript项目?

TL; DR我想为已编译的PureScript模块创建TypeScript类型,并将其分布在我的npm包中。我很乐于手动维护这些类型,只是无法弄清楚需要在tsconfig.json(上下)和package.json中放入什么。


我有一个项目,其中的核心功能是使用TypeScript CLI在PureScript中实现的,所有这些最终都通过npm以JavaScript的形式分发。我用一个简单的布局创建了一个类似的项目

.
??? cli                   # TypeScript CLI project
?   ??? main.ts
?   ??? tsconfig.json
?
??? output                # Compiled PureScript modules
?   ??? People
?       ??? externs.json
?       ??? index.js
?
??? src                   # PureScript source
?   ??? People.purs
?
??? types                 # TypeScript types for PureScript modules
    ??? People.d.ts
Run Code Online (Sandbox Code Playgroud)

src/People.purs我定义的核心功能:

module People where

type Person = { name :: String }

david :: Person
david = { name: "David …
Run Code Online (Sandbox Code Playgroud)

node.js npm typescript purescript

5
推荐指数
1
解决办法
394
查看次数

我可以有选择地打开一个模块,这样我可以毫无条件地参考它的一些值吗?

在Haskell中,我使用Data.Map模块及其相同名称的主要类型Data.Map.Map,如下所示:

import Data.Map (Map)
import qualified Data.Map as M
Run Code Online (Sandbox Code Playgroud)

在F#中,我想做一些与我的Item模块类似的东西,它包含一个相同名称的类型:

module Item

type Item = { Description: string }
let empty = { Description = "" }
Run Code Online (Sandbox Code Playgroud)

我找不到使用此模块的方法合格且类型不合格.我可以使用此模块并从另一个模块中这样输入吗?

let getItem (): Item = Item.empty
Run Code Online (Sandbox Code Playgroud)

编辑:

从客户端模块添加类型别名让我可以使用Item具有资格的模块和Item没有资格的类型,但还有更好的方法吗?

type Item = Item.Item
Run Code Online (Sandbox Code Playgroud)

f# module

4
推荐指数
1
解决办法
746
查看次数

为什么我不能只传递一个预期类似类型的Func的方法的名称?

为什么不用这个C#typecheck?在这个例子中,我试图传递一个类型的方法string -> string作为Func<string, string>.在传递适当类型的函数的名称时,能够省略lambda语法似乎是完全合理的.

using System;
using System.Linq;

class WeakInference
{
  public static void Main (string [] args)
  {
    // doesn't typecheck
    var hellos = args.Select (AppendHello); 

    // have to do this:
    // var hellos = args.Select (s => AppendHello (s));
  }

  static string AppendHello (string s)
  {
    return s + "hello";
  }
}
Run Code Online (Sandbox Code Playgroud)

c# mono gmcs

4
推荐指数
1
解决办法
98
查看次数

标签 统计

c# ×1

f# ×1

gmcs ×1

module ×1

mono ×1

node.js ×1

npm ×1

purescript ×1

typescript ×1