linq.ts TypeScript链式查询库

TypeScript 的 LINQ 操作,用起来也能像 C#那样丝滑?linq.ts就挺能打的。写法清爽,链式操作逻辑直观,常见的WhereSelectJoin全都安排上,几乎不用翻文档就能上手。

List 的链式操作像 RxJS 但比它轻量多了。比如你要筛一组数字大于 3 的,再全都乘 2:

import { List } from 'linqts';

const result = new List([1, 2, 3, 4, 5]) .Where(x => x > 3) .Select(y => y * 2) .ToArray();

// [8, 10]

写起来是不是比Array.prototype那堆方法链舒服多了?嗯,是链多了的时候,结构更清晰。

多表关联的场景也能搞。比如你有一堆peoplepets,按主人匹配:

const result = people.Join(
  pets,
  person => person.id,
  pet => pet.ownerId,
  (person, pet) => ({ person, pet })
);

用法跟 C#里的 LINQ 没啥两样,业务逻辑一目了然。

需要注意的是:linq.ts 主要适合中小规模的数据,如果数据量大,建议先测一下性能。毕竟它是在内存里搞事情,不是数据库级的。

如果你项目里经常结构化数组、组合查询之类的,那这个库挺值得一试。npm i linqts装上试试,轻便好用,没什么学习成本。

zip
linq_ts-master.zip 预估大小:21个文件
folder
linq.ts-master 文件夹
file
.travis.yml 334B
file
linqts.png 90KB
file
package.json 2KB
file
readme.md 6KB
file
tslint.json 82B
folder
__tests__ 文件夹
file
enumerable.test.ts 421B
file
list.test.ts 25KB
folder
.github 文件夹
file
FUNDING.yml 15B
file
.prettierrc 43B
file
linqts.gif 46KB
file
license 1KB
file
code-of-conduct.md 3KB
folder
src 文件夹
file
helpers.ts 1KB
file
enumerable.ts 571B
file
list.ts 18KB
file
index.ts 343B
file
tsconfig.json 503B
file
.all-contributorsrc 4KB
file
.gitignore 89B
file
.editorconfig 166B
folder
.vscode 文件夹
file
settings.json 98B
zip 文件大小:151.38KB