如何在typescript中创建对象时通过传递JSON初始化构造函数参数
假设我有一节课如何在typescript中创建对象时通过传递JSON初始化构造函数参数,typescript,typescript-typings,typescript2.0,Typescript,Typescript Typings,Typescript2.0,假设我有一节课 export class PersonName { constructor( public firstName: string = "", public lastName: string = "", public middleName: string = "", ) { } } 我想通过在对象创建时传递json对象来初始化构造函数中声明的这些变量 例如: var person = new Person({
export class PersonName {
constructor(
public firstName: string = "",
public lastName: string = "",
public middleName: string = "",
) { }
}
我想通过在对象创建时传递json对象来初始化构造函数中声明的这些变量
例如:
var person = new Person({
"firstName" : "abc",
"lastName" : "xyz",
"middleName" : ""
});
一种方法是为构造函数提供重载,然后测试第一个参数是字符串还是包含以下字段的对象:
export class Person {
public firstName;
constructor(
firstName: string,
lastName: string,
middleName: string,
);
constructor(
person: { firstName: string, lastName: string, middleName: string }
);
constructor(
arg1: string | { firstName: string, lastName: string, middleName: string } = "",
public lastName: string = "",
public middleName: string = "",
) {
if (typeof arg1 === "string") {
this.firstName = arg1;
} else {
this.firstName = arg1.firstName;
this.lastName = arg1.lastName;
this.middleName = arg1.middleName;
}
}
}
const person = new Person({
"firstName": "",
"lastName": "",
"middleName": "",
});
const person2 = new Person("foo", "bar", "baz");
一种方法是为构造函数提供重载,然后测试第一个参数是字符串还是包含以下字段的对象:
export class Person {
public firstName;
constructor(
firstName: string,
lastName: string,
middleName: string,
);
constructor(
person: { firstName: string, lastName: string, middleName: string }
);
constructor(
arg1: string | { firstName: string, lastName: string, middleName: string } = "",
public lastName: string = "",
public middleName: string = "",
) {
if (typeof arg1 === "string") {
this.firstName = arg1;
} else {
this.firstName = arg1.firstName;
this.lastName = arg1.lastName;
this.middleName = arg1.middleName;
}
}
}
const person = new Person({
"firstName": "",
"lastName": "",
"middleName": "",
});
const person2 = new Person("foo", "bar", "baz");
您的示例不是有效的JSON(它甚至不是有效的语法),您是指
:
而不是=
?是的,它只是一个复制粘贴错误。您对此有什么解决方案吗?您的示例不是有效的JSON(它甚至不是有效的语法),您的意思是:
而不是=
?是的,这只是一个复制粘贴错误。你有什么解决办法吗?