安装角之后,打字稿编译器不断收到一些错误约没有找到Promise,Map,Set和Iterator.
到现在为止我忽略了它们,但现在我需要Promise这样我的代码可以工作.
import {Component} from 'angular2/core';
@Component({
selector: 'greeting-cmp',
template: `<div>{{ asyncGreeting | async}}</div>`
})
export class GreetingCmp {
asyncGreeting: Promise<string> = new Promise(resolve => {
// after 1 second, the promise will resolve
window.setTimeout(() => resolve('hello'), 1000);
});
}
Additional information:
npm -v is 2.14.12
node -v is v4.3.1
typescript v is 1.6
Run Code Online (Sandbox Code Playgroud)
错误:
................ERROS OF MY CODE.................
C:\Users\armyTik\Desktop\angular2\greeting_cmp.ts
Error:(7, 20) TS2304: Cannot find name 'Promise'.
Error:(7, 42) TS2304: …Run Code Online (Sandbox Code Playgroud) 我试图从Angular调用API但是我收到此错误:
Property 'map' does not exist on type 'Observable<Response>'
这个类似问题的答案并没有解决我的问题:Angular 2 beta.17:'Observable <Response>'类型中不存在属性'map'.
我正在使用Angular 2.0.0-beta.17.
虽然这与Angular 2 beta.17看起来相同,但是'Observable <Response>'类型中不存在属性'map'
这是一个新版本,这些解决方案不适用于这个新发布的版本
我已经更新到最新的Angular 2 rc1并且无法编译.我有没有承认'承诺'的问题我最终直接安装es6-promise打字来解决这个问题.我试过输入各种导入语句但没有运气.我正在2015年的visual studio中运行
import 'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
import 'rxjs/add/operator/share';
import 'rxjs/add/operator/map';
return this._http.post(url, null, args).map(extractData).toPromise();
Run Code Online (Sandbox Code Playgroud)
但继续得到'Observable'类型不存在属性'map'
我的包文件是
"dependencies": {
"@angular/common": "2.0.0-rc.1",
"@angular/compiler": "2.0.0-rc.1",
"@angular/core": "2.0.0-rc.1",
"@angular/http": "2.0.0-rc.1",
"@angular/platform-browser": "2.0.0-rc.1",
"@angular/platform-browser-dynamic": "2.0.0-rc.1",
"@angular/router": "2.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"bootstrap": "^3.3.6",
"breeze-client": "~1.5.6",
"handlebars": "^4.0.5"
},
"devDependencies": {
"typescript": "^1.8.10",
"typings": "^0.8.1",
"gulp": "^3.9.1",
"jasmine-core": "~2.4.1",
"karma": "^0.13.22",
"karma-chrome-launcher": …Run Code Online (Sandbox Code Playgroud) 这是app.module.ts我试图在不同的项目中完成导入地图,它工作正常,但在这个项目中,它不起作用.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {HttpModule} from '@angular/http';
import { AppComponent } from './app.component';
import { PagesComponent } from './pages/pages.component';
@NgModule({
declarations: [
AppComponent,
PagesComponent
],
imports: [
BrowserModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
app.component.ts
import { Component } from '@angular/core';
import {PageService} from './page.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ["../assets/public/css/adminstyle.css",
"../assets/public/css/demo.css",
"../assets/public/css/style.css"
,"../assets/public/css/stylesheet.css"],
providers:[PageService]
})
export class AppComponent {
title …Run Code Online (Sandbox Code Playgroud) 有人用ASP.Net MVC尝试过Angular 2 RC Final吗?
我在使用ASP.Net MVC配置Angular 2 RC 6时遇到了麻烦,直到beta 17一切正常.
具有以下配置的package.json似乎不起作用:
"dependencies": {
"@angular/common": "2.0.0-rc.6",
"@angular/compiler": "2.0.0-rc.6",
"@angular/core": "2.0.0-rc.6",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.6",
"@angular/platform-browser": "2.0.0-rc.6",
"@angular/platform-browser-dynamic": "2.0.0-rc.6",
"@angular/router": "3.0.0-rc.1",
"systemjs": "0.19.27",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
},
Run Code Online (Sandbox Code Playgroud)
恢复包在输出窗口中显示以下输出:
====Executing command 'npm install'====
npm WARN package.json @ No description
npm WARN package.json @ No repository field.
npm WARN package.json @ No README data
npm http GET http://registry.npmjs.org/systemjs
npm http GET http://registry.npmjs.org/angular/compiler
npm http GET http://registry.npmjs.org/angular/core
npm http …Run Code Online (Sandbox Code Playgroud) 你好,
我正在使用VS2015中运行的Angular2 beta 12.当我将rxjs从5.0.0-beta.2更新到beta.3时,我会遇到一系列与我的承诺有关的例外情况.
例如
map在类型上不存在Observable<Response>share不存在于类型中Observable<Response>的package.json
{
"name": "ASP.NET",
"version": "0.0.0",
"scripts": {
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"start": "concurrent \"npm run tsc:w\" \"npm run lite\" "
},
"dependencies": {
"angular2": "2.0.0-beta.12",
"systemjs": "0.19.24",
"es6-promise": "3.1.2",
"es6-shim": "0.35.0",
"reflect-metadata": "0.1.3",
"rxjs": "5.0.0-beta.3", // beta.2 allowed project to build
"zone.js":"0.6.6"
},
"devDependencies": {
"gulp": "3.9.1",
"gulp-concat": "2.6.0",
"gulp-cssmin": "0.1.7",
"gulp-uglify": "1.5.3",
"rimraf": "2.2.8",
"concurrently": "2.0.0",
"lite-server": "2.1.0",
"typescript": "1.8.9" …Run Code Online (Sandbox Code Playgroud) 所以,我已经看过其他关于类似问题的其他帖子,但没有一个解决方案有帮助.
我也在IntelliJ IDEA 15中进行此开发,而不是Visual Studio.我目前使用的是Typescript 2.0.3.
import { Injectable } from '@angular/core';
import { Effect, StateUpdates, toPayload } from '@ngrx/effects';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/dom/webSocket'
import 'rxjs/add/operator/map';
import { AppState } from '../reducers';
import { NGRXWebSocketService } from '../shared/ngrxWebsocket.service';
import { BASE_URL } from "../shared/ngrxWebsocket.service";
export interface WebsocketMessage {
data: string
}
@Injectable()
export class WebsocketEffects {
constructor(private updates$:StateUpdates<AppState>,
private ngrxWebSocketService: NGRXWebSocketService) {
}
@Effect() _recieve$ = this.ngrxWebSocketService.getSubject()
.map((websocketUpdate: WebsocketMessage) => {
let message = …Run Code Online (Sandbox Code Playgroud) 我在使用angularfire2时遇到打字稿编译错误:
'FirebaseObjectObservable'类型中不存在属性'take'
我正在从rxjs导入take操作符,所以这个问题没有帮助:AngularFire2类型:"属性'获取'在类型'FirebaseObjectObservable <any>'上不存在"
进口:
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2';
import { Subscription } from 'rxjs';
import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/throttleTime';
import 'rxjs/add/operator/take';
Run Code Online (Sandbox Code Playgroud)
导致错误的代码:
this.af.database.object(`/xyz`).take(1);
Run Code Online (Sandbox Code Playgroud)
编译,如果我转换为'任何':
var test: any = this.af.database.object(`/xyz`);
test.take(1);
Run Code Online (Sandbox Code Playgroud)
版本:
"typescript": "^2.1.4"
"rxjs": "^5.0.3"
"angularfire2": "^2.0.0-beta.6-preview"
Run Code Online (Sandbox Code Playgroud)
我也测试并使用'take'对rxjs Observable工作正常.由于FirebaseObjectObservable扩展了Observable,它也应该可以正常工作.有什么想法为什么打字稿在这里给我一个错误?
现在我已将我的应用程序更新到Angular2 v2.0.0-rc.1,当我的应用程序被捆绑在webpack中时,我再次看到TypeScript编译错误/警告消息.@angular我从TypeScript源文件中引用的任何包都会出现这些消息,例如:
ERROR in ./src/app/app.ts
(1,34): error TS2307: Cannot find module '@angular/core'.
ERROR in ./src/app/app.ts
(3,76): error TS2307: Cannot find module '@angular/common'.
ERROR in ./src/app/app.ts
(4,30): error TS2307: Cannot find module '@angular/http'.
Run Code Online (Sandbox Code Playgroud)
使用Angular2的早期beta版本,我遇到类似的类似的消息问题,Promise并Map在我的app.ts文件顶部包含类似的东西.
///<reference path="node_modules/angular2/typings/browser.d.ts"/>
Run Code Online (Sandbox Code Playgroud)
我可以参考Angular2包的d.ts文件@angular来解决问题吗?到目前为止,似乎typings系统没有任何可用的东西:
MFO-Mac:angular2-oauth2 mfo$ typings search '@angular'
No results found for search
Run Code Online (Sandbox Code Playgroud)
现在我将我的TypeScript tsconfig.json文件配置为以ES6为目标.但是,如果我改变它的目标,而不是ES5,我不明白这些@angular错误,但我反而得到普遍ES6类错误,如Promise,Set和Map.这是我为ES6配置的文件:
{
"version": "1.6.2",
"compilerOptions": { …Run Code Online (Sandbox Code Playgroud) 我有一个api,返回像这样的对象/数组:
(2) [{...}, {...}] object
0: {a: '1', b: {id: '1'}}
1: {a: '2', b: {id: '2'}}
Run Code Online (Sandbox Code Playgroud)
所以它看起来像对象的数组(但是debuges说'对象').
所以在我的代码中我有:
return this.http.get(this.url).pipe(
map(datas => {
return datas.map(data => {
let object = {
a: data['a'],
b: data['b']['id'],
}
return object;
})
})
);
Run Code Online (Sandbox Code Playgroud)
但那里:
return datas.map(data => {
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Property 'map' does not exist on type 'Object'.
Run Code Online (Sandbox Code Playgroud)
但应用程序运行良好是正确显示此数据.但这个错误很烦人.
我能做什么?
我试图在通过这种方式解析之前转换数据,但订阅者获得未转换的数据。
@Injectable()
export class OrderService {
getAll(): Observable< Array<Order> > {
let url = 'http://fakeapi.com';
return this.http.get( url )
.pipe(
tap( (data: any) => {
/*
* MAKE DATA TRANSFORMATIONS HERE
*/
}),
catchError( (err: any, caught: Observable<{}>) => {
console.log('error while GET : ' + url);
console.warn(err);
return caught;
})
);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个订阅者:
this._orderService.getAll().subscribe( data => {
this.orders = data;
console.log('\nplanning-overview-page : _orderService.getAll : data ', data);
});
Run Code Online (Sandbox Code Playgroud) angular ×9
rxjs ×5
typescript ×5
javascript ×2
observable ×2
angular6 ×1
angularfire2 ×1
angularjs ×1
asp.net-mvc ×1
asp.net5 ×1
ngrx ×1
rxjs5 ×1
rxjs6 ×1
webpack ×1