のパラメータに割り当てられない私持っている私はカジノ・マネジメント・システムを作成するために使用しています次のコード、:Angular2 /活字体:エラーTS2345:型「文字列」の引数はタイプ「文字列」
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import { SearchService } from './search.service';
import { Data } from './datatypings';
@Component({
moduleId: module.id,
selector: 'casino-search',
templateUrl: 'search.component.html',
styleUrls: [ 'search.component.css' ],
providers: [SearchService]
})
export class SearchComponent implements OnInit {
data: Observable<Data[]>;
private searchTerms = new Subject<String>();
constructor(
private searchService: SearchService,
private router: Router) {}
// Push a search term into the observable stream
search(term: string): void {
this.searchTerms.next(term);
}
ngOnInit(): void {
this.data = this.searchTerms
.debounceTime(150) // wait for 150ms pause in events
.distinctUntilChanged() // ignore if next search term is same as previous
.switchMap(term => term // switch to new observable each time
// return the http search observable
? this.searchService.search(term)
// or the observable of empty data if no search term
: Observable.of<Data[]>([]))
.catch(error => {
// TODO: real error handling
console.log(error);
return Observable.of<Data[]>([]);
});
}
gotoDetail(data: Data): void {
let link = ['/detail', data.id];
this.router.navigate(link);
}
}
私は活字体からJavaScriptにこのコードをtranspileしようとしたときしかし、私はこのエラーを取得する:
app/data/search.component.ts(37,37): error TS2345: Argument of type 'String' is not assignable to parameter of type 'string'.
'string' is a primitive, but 'String' is a wrapper object. Prefer using 'string' when possible.
は今、私は単純に角度括弧内string
にString
を変更することで、エラーを修正しましたが、私のことができるようにしたいです今後も同様のエラーを発生させずに処理を進めてください。私ができる最高のコードを書くためにlso ...だから私は誰かが私のためにこれをクリアすることができますか疑問に思っています:
私はラッパークラスを持つパラメータがプリミティブクラスをカプセル化し、私はここに間違っている場合は私を修正し、より基本的により広範に宣言された変数型の内容をより単純なプリミティブに割り当てることができない理由がわかります。
エラーが暗示しているような一般的な意味で、Angular2/Typescriptの 'String'型よりも 'string'型を使用する方が望ましい理由は何ですか?これが優先されるのは何ですか?
これを 'new subject()に変更しようとします。 "small s" ' –
micronyks
ええ、質問をする前に変更しました。私が知りたいのは、定義済みのラッパークラス 'String'を、エラーメッセージの推奨に従って、プリミティブ' string'型よりも好ましいものにするものです。 –
解決策を見つけましたか?私は同じ問題に直面しています。 –