具有typescript es6导入语法的linq javascript库

具有typescript es6导入语法的linq javascript库,typescript,Typescript,我正在使用linq(npm linq)和linq.d.ts文件,但我无法使用ES 6语法 我尝试了从“linq”导入{Enumerable}的正常,但是它拒绝找到“linq”。我将描述符更改为具有声明模块“linq”,而通常它不具有引号。现在linq解决了,但是我必须使用EnumerableTic,但是输出代码需要有Enumerable而不是EnumerableTic。我想我可以通过从“linq”导入{EnumerableStatic as Enumerable}来解决这个问题,但是这无法正确解

我正在使用linq(npm linq)和linq.d.ts文件,但我无法使用ES 6语法

我尝试了从“linq”导入{Enumerable}的正常
,但是它拒绝找到
“linq”
。我将描述符更改为具有
声明模块“linq”
,而通常它不具有引号。现在linq解决了,但是我必须使用EnumerableTic,但是输出代码需要有
Enumerable
而不是
EnumerableTic
。我想我可以通过从“linq”
导入{EnumerableStatic as Enumerable}来解决这个问题,但是这无法正确解决


是否有人使用过此功能,以及如何导入它?

我创建了
main.ts
文件:

/// <reference path="typings/linq/linq.d.ts" />

import { Enumerable } from 'linq';
这意味着找不到您的文件
/var/www/TypeScript playway/node_modules/linq/linq.js

我会把你的问题转达给你。该问题还说:

在TypeScript 1.5中,如果源文件至少包含以下内容之一,则将其视为外部模块:

指定导出修饰符的顶级声明

任何形式的新ES6出口或进口声明

原始类型脚本导出等于表单导出=点的赋值

原始类型脚本import等于import Math=require(“Math”)形式的语句


我不认为linq符合以下要点。

需要更新定义文件:

  • 文档和定义文件的函数名大小写与3.0.5版本不同。例如,
    Enumerable.From
    现在是
    Enumerable.From
    。您需要使用这些更改更新定义文件
  • 定义文件当前不允许使用外部模块。添加以下内容:

    declare module "linq" {
        export = Enumerable;
    }
    
  • 然后,由于它在JavaScript代码中使用
    module.exports=Enumerable
    ,因此您需要像这样导入它:

    import * as Enumerable from "linq";
    
  • 我找到了一个库,该库安装了npm。它有一个文件ATW,linq.3.0.3-Beta4.d.ts,其中包含小写名称

    我添加了对该文件的引用:

    /// <reference path="../../node_modules/retyped-linq-tsd-ambient/linq.3.0.3-Beta4.d.ts" />
    
    而且我能够在我的typescript代码中使用linq库,并具有intellisence

    但是:与C#版本相比,类型化较弱,使用“任意”和非类型化集合而不是推断类型和类型化集合。有了typescript语言的优秀特性,应该可以更接近C#体验

    注意:还有一个很有前途的库,它是由i-Typescript从头开始编写的。这似乎有更强的打字能力。不幸的是,由于一些es6(-shim)依赖关系,我无法让它在我的项目中编译/工作

    还有一个很有前途的LinqTS库,我写的 从头开始打字


    图书馆更名为linq-es2015。它使用了语言的所有最新特性,理论上速度更快。示例:

    这最初是在gitter中提出的,当时答案不多,因此将其发布在这里。嘿,是的,目前我已经按照您提到的那样做了,并将
    EnumerableStatic
    方法调用作为函数导出移动到模块中,并将
    导入*作为“linq”中的可枚举项
    但是如果方法名称也过时了,那就是一种痛苦:(@Grofit:嗯,作者似乎只是将函数名称从
    FunctionName
    重命名为
    FunctionName
    。这还不错。只需使用
    linq.d.ts
    文件,根据需要进行更改,然后向发送请求。(开销:最多半小时;)现在它说找不到require,所以我添加了requirejs,但现在它生成了错误,并且说,linq没有加载,我怀疑linq.js*.js文件是否包含linq模块以及ts.:|我应该怎么做?除了linq.js之外,还有没有其他包不是linq.js,以及linq是NPM软件包管理器上的linq.js?我对ve有问题r 3.0.4-beta5,我无法在ts类中导入'linqjs',但在浏览器上的linq.js文件中,转到amd if,并返回define('linqjs'..),我遵循了这里的所有步骤,一切正常:
    /// <reference path="../../node_modules/retyped-linq-tsd-ambient/linq.3.0.3-Beta4.d.ts" />
    
    declare module "linq" {
         export = Enumerable;
    }