2017-06-23 6 views
10

मैं सिर्फ हमारे कोणीय 4 आवेदन के लिए दो महत्वपूर्ण उन्नयन किए गए और उपकरणों का निर्माण:टाइप करें 'हेडर' के पास 'RequestOptionsArgs' टाइप के साथ सामान्य में कोई गुण नहीं है?

  1. @ कोणीय/कोर^4.1.3 =>^4.2.4 (और/http,/रूपों, आदि)
  2. tslint^5.3.2

    : =>^5.4.3

मैं एक सेवा है जो इतना जैसे विकल्प वाणी है

@Injectable() 
export class WorkOrderService { 

    private headers: Headers = new Headers({ 'Content-Type': 'application/json' }); 
    private options: RequestOptions = new RequestOptions(this.headers); 

    constructor(private http: Http) {} 

    /* Methods ... */ 
} 

ऊपर अब नहीं रह गया है tslint सत्यापित करता है, तो निम्न त्रुटि फेंक:

error TS2559: Type 'Headers' has no properties in common with type 'RequestOptionsArgs'.

स्रोत (@ कोणीय/http interface.d.ts:43) स्पष्ट रूप से के रूप में एक RequestOptionsArgsHeaders के लिए अनुमति देता है:

/** 
* Interface for options to construct a RequestOptions, based on 
* [RequestInit](https://fetch.spec.whatwg.org/#requestinit) from the Fetch spec. 
* 
* @experimental 
*/ 
export interface RequestOptionsArgs { 
    url?: string | null; 
    method?: string | RequestMethod | null; 
    /** @deprecated from 4.0.0. Use params instead. */ 
    search?: string | URLSearchParams | { 
     [key: string]: any | any[]; 
    } | null; 
    params?: string | URLSearchParams | { 
     [key: string]: any | any[]; 
    } | null; 
    headers?: Headers | null; 
    body?: any; 
    withCredentials?: boolean | null; 
    responseType?: ResponseContentType | null; 
} 

उत्तर

21

अद्यतन 4.3 HttpClient

नया वाक्यविन्यासके साथ संगत होने के लिए, कोणीय 4.3 में शुरू की, है:

import { HttpClient, HttpHeaders } from "@angular/common/http"; 

private _options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; 

कोई और अधिक RequestOptions: मापदंडों नई अपरिवर्तनीय HttpParams मानचित्र का उपयोग कर जोड़ रहे हैं।

पूर्व 4,3/Http

मैं सिर्फ देखा कि RequestOptions अब आप की आवश्यकता को स्पष्ट रूप से एक वस्तु के रूप में नामित विकल्पों पारित करने के लिए, जैसे:

headers: Headers = new Headers({ 'Content-Type': 'application/json' }); 
options: RequestOptions = new RequestOptions({ headers: this.headers }); 
+1

मैं वही समस्या में चल जा रहा है, प्रदान करने के लिए की धन्यवाद एक समाधान –

+0

मुझे लगता है कि आपको बस इसके आसपास के ब्रैकेट की आवश्यकता हो सकती है। नए अनुरोध विकल्प ({this.headers}); – LLai

+2

@LLai ऑब्जेक्ट विनाश इस मामले में * इस * के कारण काम नहीं करता है। *: 'प्रकार का तर्क' {यह: कोई भी; } 'अनुरोधऑप्शन आर्ट्स' प्रकार के पैरामीटर के लिए असाइन करने योग्य नहीं है। ऑब्जेक्ट शाब्दिक केवल ज्ञात गुण निर्दिष्ट कर सकता है, और 'यह' प्रकार 'RequestOptionsArgs' प्रकार में मौजूद नहीं है। लेकिन मैंने आशा भी की थी। – msanford

संबंधित मुद्दे