Typescript将string []转换为字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript将string []转换为字符串相关的知识,希望对你有一定的参考价值。
我有一个Angular 5应用程序,我有一个候选对象,它有一个string []属性,在它实现的接口中指定。正在从模板中检索属性的实际值,作为输入字符串。这就是问题。需要将对象作为字符串数组保存到数据库中,如下所示:
{ candidate.skills: ["c++", "java", "etc"] }
但是,模板中输入字段的值以字符串形式出现。但是typescript认为它是在对象的接口中指定的字符串[]。所以,我不能将candidate.skills分成一个数组。
有没有办法做到这一点 ?如果是这样,我还没找到它。
答案
如果需要,您可以在界面中将类型指定为字符串或数组。
skills: string|string[];
编辑
如评论中所述,您可能必须转换变量以执行仅适用于特定类型的某些操作:
// Convert from string to string[]
this.candidate.skills = (<string>this.candidate.skills).split(', ');
另一答案
我实现的接口:
export class Candidate {
id: number;
name: string;
skills: string|string[]; }
在组件中,我尝试通过服务上传我的数据。 component.ts中的代码:
import { Component, OnInit } from '@angular/core';
import { CandidatesService } from '../candidates.service';
import { Validators } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
import { Candidate } from '../candidate';
@Component({
selector: 'app-candidates-adding',
templateUrl: './candidates-adding.component.html',
styleUrls: ['./candidates-adding.component.css']
})
export class CandidatesAddingComponent implements OnInit {
candidate: Candidate = new Candidate();
constructor(private candidatesService: CandidatesService) { }
ngOnInit() {
}
saveCandidate(): void {
if(this.candidate.skills.indexOf(', ') >= 0) {
this.candidate.skills = this.candidate.skills.split(', ');
}
this.candidatesService.addCandidate(this.candidate).subscribe();
}
}
在模板中:
<input [(ngModel)]="candidate.name" placeholder="name" minlength="4">
<input [(ngModel)]="candidate.skills" placeholder="name" minlength="1">
<button (click)="saveCandidate()">Adauga candidat</button>
以上是关于Typescript将string []转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章