繁体   English   中英

使用rxjs的打字稿

[英]Typescript with rxjs

我目前正在研究没有任何模块加载器的打字稿项目。

现在,我正在尝试将rxjs集成到我的项目中。 但是我每次都会收到错误ReferenceError: exports is not defined 是否需要使用模块加载器,如果可以,您可以帮助我进行设置吗? 我目前正在用tsc -w编译ts文件

Main.ts

const mock = of('Hello');
mock.subscribe(res => console.log(res));

的index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>HM</title>

    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="assets/hm-logo.png">
    <link rel="stylesheet" type="text/css" href="../node_modules/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<script src="./main.js"></script>
</body>
</html>

感谢@toskv,我无需任何模块加载程序就能将rxjs集成到打字稿中。 为此,我需要考虑以下步骤:

1.Step

将cdn链接添加到根HTML (在head标签内),如下所示:

<script src="https://unpkg.com/rxjs@6.3.3/bundles/rxjs.umd.min.js"></script>

2.Step

添加带有全局变量的rxjs.d.ts文件:

declare var rxjs;

3.Step

在tsconfig.json文件中包含rxjs.d.ts文件,例如:

  "include": [
    "src/**/*",
    "rxjs.d.ts"
  ]

4.Step

现在,您可以在ts文件中使用rxjs,例如:

const { Observable, Subject, ReplaySubject, from, of, range } = rxjs;
const { map, filter, switchMap } = rxjs.operators;

range(1, 200)
    .pipe(filter(x => x % 2 === 1), map(x => x + x))
    .subscribe(x => console.log(x));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM