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 []转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript:字符串转换为数字

用于将字符串枚举成员转换为枚举的Typescript函数

如何在 TypeScript 中将字符串转换为数字?

如何在 TypeScript 中将字符串转换为数字?

Typescript 映射类型,其中仅保留可为空的属性并转换为字符串类型

TypeScript:将布尔值转换为字符串值