gpt4 book ai didi

angular - 类型 'map' 上不存在属性 'Subject<{}>'

转载 作者:太空狗 更新时间:2023-10-29 17:30:25 25 4
gpt4 key购买 nike

所以,我看过其他多篇关于类似问题的帖子,但没有一个解决方案有帮助。

我也在 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 = JSON.parse(websocketUpdate.data);
return{ type: message.action, payload: message.payload}
});
}

编辑 1:

这是 NGRXWebsocketService。

import {Injectable} from '@angular/core';
import {$WebSocket, WebSocketConfig} from 'angular2-websocket/angular2-websocket'

export const BASE_URL = 'ws://' + location.hostname + ':9000/socket';

@Injectable()
export class NGRXWebSocketService {
private socket: $WebSocket;

constructor() {
this.socket = new $WebSocket(BASE_URL);
}

public sendRequest(request) {
return this.socket.send(request);
}

public reconnect() {
this.socket = new $WebSocket(BASE_URL);
}

public getSubject() {
return this.socket.getDataStream();
}
}

最佳答案

这看起来像是手动编译期间的输入问题。

在 IDE 中编译时,IDE 可能有内部类型配置,这在您的项目设置中不存在。

  1. npm install typings -g

  2. 检查您的package.json 依赖项

    es6垫片

    如果您在dependencies 中有es6-shim,请在您的项目目录中创建typings.json:

    {
    "globalDependencies": {
    "es6-shim": "registry:dt/es6-shim",
    "node": "registry:dt/node"
    }
    }

    核心js

    如果您在dependencies 中有core-js,请在您的项目目录中创建typings.json:

    {
    "globalDependencies": {
    "core-js": "registry:dt/core-js",
    "node": "registry:dt/node"
    }
    }
  3. 类型安装

  4. 尝试手动编译。

关于angular - 类型 'map' 上不存在属性 'Subject<{}>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com