Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Type 'URLSearchParams' is not assignable to type 'URLSearchParams'

Tags:

I want to send a http.get request with some search parameters to my webapi to get a list of students. I found some examples on how to do this, but after doing exactly as in the examples, I get this weird error:

Type 'URLSearchParams' is not assignable to type 'URLSearchParams'. Two different types with this name exist, but they are unrelated. Property 'rawParams' is missing in type 'URLSearchParams'. 

Here's my component:

import { Injectable } from '@angular/core'; import { Http, Headers, Response, RequestOptions } from '@angular/http'; import 'rxjs/add/operator/map' import { User } from '../_models/user';  @Injectable() export class UserService {  options = new RequestOptions({ 'headers': new Headers({ 'Content-Type': 'application/json' })});  constructor(private http: Http) { }  createAccount(newUser: User){ return this.http.post('http://localhost:64792/api/students', JSON.stringify(newUser), this.options) .map((response: Response) => {                   if(response.ok){         console.log("Registration was a success");         return true;      } else {          console.log("Registration failed");          return false;       }  }); }  searchStudents(searchWords: Array<string>){ // Parameters obj-  let params: URLSearchParams = new URLSearchParams();  for(let i = 0; i < searchWords.length; i++){  params.append('searchWords', searchWords[i]);  }  this.options.search = params;  //Http request- } }  

What could be causing this error?

like image 524
Jesper Avatar asked Apr 06 '17 13:04

Jesper


1 Answers

It seems the native URLSearchParams is declared to your present code, whereas the new URLSearchParams(); returns angular.io's URLSearchParams object

import 'rxjs/add/operator/map' and it should work.

import { URLSearchParams } from '@angular/http'; 
like image 60
notnotundefined Avatar answered Nov 01 '22 13:11

notnotundefined