类型字符串不可分配给类型编号
Type string is not assignable to type number
我是 angular 的新人,我对这个错误有疑问:
Type string is not assignable to type number
我的文件是这样的:
novo-fizicko-lice.component.ts
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { ApiService } from '../api.service';
import { FizickoLice } from '../klase/fizicko-lice';
@Component({
selector: 'app-novo-fizicko-lice',
templateUrl: './novo-fizicko-lice.component.html',
styleUrls: ['./novo-fizicko-lice.component.css']
})
export class NovoFizickoLiceComponent implements OnInit {
prezime: string = "";
ime: string = "";
imeOca: string = "";
jmb: string = "";
mjestoStanovanja: string = "";
napomena: string = "";
datum: Date;
obustavljenaIstraga: boolean;
upisanoFizickoLice: FizickoLice;
novoFizckoLiceForma = new FormControl();
constructor(private api: ApiService) { }
ngOnInit() {
}
public adduser() {
console.log("test clikc");
this.datum = new Date;
const novoFizickoLice: FizickoLice = {
Ime: this.ime,
Prezime: this.prezime,
ImeOca: this.imeOca,
JMB: this.jmb,
MjestoStanovanja: this.mjestoStanovanja,
Napomena: this.napomena,
DatumUnosenjaLica: this.datum,
ObustavljenaIstraga: this.obustavljenaIstraga
};
this.api.AddNewUser(novoFizickoLice).subscribe(data => {
console.log(data);
this.upisanoFizickoLice = data;
});
}
}
fizicko-lice.ts
export interface FizickoLice {
Ime: string;
Prezime: string;
ImeOca: string;
JMB: number;
MjestoStanovanja: string;
DatumUnosenjaLica: Date | string;
Napomena: string;
ObustavljenaIstraga: boolean;
}
我在这个文件 novo-fizicko-lice 中遇到错误。 component.this 在线
JMB:this.jmb,
我该如何解决这个问题?
您正在尝试分配数字类型的字符串值。也许你在引号之间使用了数字 '1'
或 "2"
并且 TS 将其识别为字符串。
好吧,错误说明了一切:
NovoFizickoLiceComponent::jmb
声明为 string
,但 FizickoLice::JMB
是 number
。当您在 addUser
方法中创建 new FizickoLice
时,您尝试使用不允许的字符串 JMB
初始化数字 jmb
。
您应该将 NovoFizickoLiceComponent::jmb
的类型更改为 number
jmb: number = 0;
或者在赋值前将字符串转换为数字
JMB: +(this.jmb)
您的问题来自您的变量jmb
。
在您的界面 FizickoLice
中,您将 JMB 声明为一个数字。
在您的组件中,您为其分配了一个字符串。
const novoFizickoLice: FizickoLice = {
Ime: this.ime,
Prezime: this.prezime,
ImeOca: this.imeOca,
JMB: this.jmb, <---- Here, this.jmb is a string.
MjestoStanovanja: this.mjestoStanovanja,
Napomena: this.napomena,
DatumUnosenjaLica: this.datum,
ObustavljenaIstraga: this.obustavljenaIstraga
};
只要在创建变量时更改类型即可。
jmb: number;
我是 angular 的新人,我对这个错误有疑问:
Type string is not assignable to type number
我的文件是这样的:
novo-fizicko-lice.component.ts
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { ApiService } from '../api.service';
import { FizickoLice } from '../klase/fizicko-lice';
@Component({
selector: 'app-novo-fizicko-lice',
templateUrl: './novo-fizicko-lice.component.html',
styleUrls: ['./novo-fizicko-lice.component.css']
})
export class NovoFizickoLiceComponent implements OnInit {
prezime: string = "";
ime: string = "";
imeOca: string = "";
jmb: string = "";
mjestoStanovanja: string = "";
napomena: string = "";
datum: Date;
obustavljenaIstraga: boolean;
upisanoFizickoLice: FizickoLice;
novoFizckoLiceForma = new FormControl();
constructor(private api: ApiService) { }
ngOnInit() {
}
public adduser() {
console.log("test clikc");
this.datum = new Date;
const novoFizickoLice: FizickoLice = {
Ime: this.ime,
Prezime: this.prezime,
ImeOca: this.imeOca,
JMB: this.jmb,
MjestoStanovanja: this.mjestoStanovanja,
Napomena: this.napomena,
DatumUnosenjaLica: this.datum,
ObustavljenaIstraga: this.obustavljenaIstraga
};
this.api.AddNewUser(novoFizickoLice).subscribe(data => {
console.log(data);
this.upisanoFizickoLice = data;
});
}
}
fizicko-lice.ts
export interface FizickoLice {
Ime: string;
Prezime: string;
ImeOca: string;
JMB: number;
MjestoStanovanja: string;
DatumUnosenjaLica: Date | string;
Napomena: string;
ObustavljenaIstraga: boolean;
}
我在这个文件 novo-fizicko-lice 中遇到错误。 component.this 在线
JMB:this.jmb,
我该如何解决这个问题?
您正在尝试分配数字类型的字符串值。也许你在引号之间使用了数字 '1'
或 "2"
并且 TS 将其识别为字符串。
好吧,错误说明了一切:
NovoFizickoLiceComponent::jmb
声明为 string
,但 FizickoLice::JMB
是 number
。当您在 addUser
方法中创建 new FizickoLice
时,您尝试使用不允许的字符串 JMB
初始化数字 jmb
。
您应该将 NovoFizickoLiceComponent::jmb
的类型更改为 number
jmb: number = 0;
或者在赋值前将字符串转换为数字
JMB: +(this.jmb)
您的问题来自您的变量jmb
。
在您的界面 FizickoLice
中,您将 JMB 声明为一个数字。
在您的组件中,您为其分配了一个字符串。
const novoFizickoLice: FizickoLice = {
Ime: this.ime,
Prezime: this.prezime,
ImeOca: this.imeOca,
JMB: this.jmb, <---- Here, this.jmb is a string.
MjestoStanovanja: this.mjestoStanovanja,
Napomena: this.napomena,
DatumUnosenjaLica: this.datum,
ObustavljenaIstraga: this.obustavljenaIstraga
};
只要在创建变量时更改类型即可。
jmb: number;