以下代码将引发tsc错误并不确定如何更正它。Rxjs with TypeScript编译错误
使用rxjs 5.0.3与2.1.5 TSC
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import 'rxjs/Rx';
let subject = new Subject();
Observable.merge(subject, Observable.interval(500))
.startWith(new Date())
.scan((acc, curr) => {
const date = new Date(acc.getTime());
date.setSeconds(date.getSeconds() + 1);
return date;
})
.subscribe(v => {
let today = v.toISOString();
console.log(today);
});
我看到的错误是:
node_modules/rxjs/Observable.d.ts(68,60): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/Observable.d.ts(68,70): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/observable/PromiseObservable.d.ts(40,31): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/observable/PromiseObservable.d.ts(41,26): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(2,60): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(3,79): error TS2304: Cannot find name 'Promise'.
node_modules/rxjs/operator/toPromise.d.ts(3,89): error TS2304: Cannot find name 'Promise'.
test.ts(10,31): error TS2339: Property 'getTime' does not exist on type 'number | {}'.
Property 'getTime' does not exist on type 'number'.
test.ts(15,19): error TS2339: Property 'toISOString' does not exist on type 'number | {}'.
Property 'toISOString' does not exist on type 'number'.
谢谢蒂姆,我采用'acc'和'curr'类型的'any'方法 – devguy