Typescript 如何完成RxJS的基本介绍步骤?
我想按照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
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}=rxjs在tsconfig.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”导入代码>