Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何完成RxJS的基本介绍步骤?_Typescript_Rxjs - Fatal编程技术网

Typescript 如何完成RxJS的基本介绍步骤?

Typescript 如何完成RxJS的基本介绍步骤?,typescript,rxjs,Typescript,Rxjs,我想按照RxJS的说明进行操作: 我做以下几点 创建目录 cd进入目录并调用npm init,使用 npm的所有默认值 输入行import Rx from'rxjs/Rx' 放入test.ts文件中 运行tsc测试。ts 我收到一条错误消息: node_modules/rxjs/internal/Observable.d.ts:82:59 - error TS2693: 'Promise' only refers to a type, but is being used as a value

我想按照RxJS的说明进行操作:

我做以下几点

  • 创建目录
  • cd
    进入目录并调用
    npm init
    ,使用 npm的所有默认值
  • 输入行
    import Rx from'rxjs/Rx'
    放入test.ts文件中
  • 运行
    tsc测试。ts
  • 我收到一条错误消息:

    node_modules/rxjs/internal/Observable.d.ts:82:59 - error TS2693: 'Promise' only refers to a type, but is being used as a value here.
    
    82     toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;
                                                                 ~~~~~~~
    
    fl.ts:1:23 - error TS2304: Cannot find name 'rxjs'.
    
    1 const { fromEvent } = rxjs;
                            ~~~~
    
    这不能是提供给
    tsc
    的完整文件。我收到错误消息:

    node_modules/rxjs/internal/Observable.d.ts:82:59 - error TS2693: 'Promise' only refers to a type, but is being used as a value here.
    
    82     toPromise<T>(this: Observable<T>, PromiseCtor: typeof Promise): Promise<T>;
                                                                 ~~~~~~~
    
    fl.ts:1:23 - error TS2304: Cannot find name 'rxjs'.
    
    1 const { fromEvent } = rxjs;
                            ~~~~
    
    另外,在添加
    导入'rxjs'
    后,仍然会出现相同的错误消息。
    如何完成该文件?

    您必须创建一个包含以下选项的
    tsconfig.json
    文件:

    {
        "compilerOptions": {
            "target": "es5",
            "lib": ["es2015", "dom"]
        }
    }
    
    之后,您只需在终端中运行
    tsc
    (不带文件名)。它将在同一目录中创建一个
    test.js
    文件,该文件可以与
    节点test.js
    一起执行

    我的test.ts文件如下所示:

    import { of } from 'rxjs';
    
    const source = of('demo value');
    
    source.subscribe(value => {
        console.log(value);
    });
    

    我可以编译你的文件。然后,我尝试从简介部分运行该示例(请参见我的编辑)。这是一个完整的文件吗?在将
    fromEvent
    变量:
    import*设置为来自“rxjs”的rxjs之前,添加一条导入语句。在这一行之后,您可以编写
    const{fromEvent}=rxjs。我的文件现在正好包含以下内容:
    import*作为“rxjs”中的rxjs;const{fromEvent}=rxjstsconfig.json
    中,我写了:
    {“compilerOptions”:{“target”:“es5”,“lib”:[“es2015”,“dom”]}}
    并且用
    npm
    初始化目录。当我在命令行上运行
    tsc
    时,我得到
    错误TS2459:Type'typeof import(“/home/mzh/node_modules/rxjs/Rx”)“没有属性'fromEvent',也没有字符串索引签名。
    我的答案基于最新的rxjs版本6.2.2。请检查package.json文件中是否使用了最新版本。在最新版本中,您可以直接从rxjs导入几乎所有内容:
    import{of,fromEvent}从“rxjs”导入