我应该使用new在typescript类中创建一个对象属性吗?
Should I use new to make an object property in a typescript class?
下面是我的Typescript类和接口:
interface ITest {
qs: ITestQuestion[];
message: string;
}
interface ITestQuestion {
answer: string;
}
class QuestionHomeController {
test: ITest = {
qs: null,
message: string = "xxxxx"
}
constructor() {
this.test.qs = // << setting to An Array of Test Questions
}
}
代码失败是因为这个。没有定义Test。
我应该如何定义这个,我应该在我的构造函数中创建一个新的测试对象吗?这是我声明接口的正确方式吗?我对Typescript类中的属性是如何工作的有点困惑
如果你正在寻找一种方法来初始化一个数组,只需使用[]
:
interface ITest {
qs: ITestQuestion[];
}
interface ITestQuestion {
answer: string;
}
class QuestionHomeController {
test: ITest;
constructor() {
// initialize test
this.test =
{
qs: [
{ answer: 'first answer' },
{ answer: 'second answer' }
]
};
}
}
我应该在构造函数中创建一个新的测试对象吗?
你的选择。
这也是我声明接口的正确方式吗?
是的
如果在我的类中有一个类似于"ready"的属性,那么我该如何使用ready: string = null;在构造函数之前还是应该声明:ready: string;然后在构造函数中输入do ready = null
如果我已经有了值message:string = 'default message';
,我在变量声明处执行它。如果我需要从服务器加载它,我会在构造函数中完成。
更新2
如果你有一个属性,比如test,其中一个属性是你知道的,而另一个属性是从服务器加载的
我会这样做:
interface ITestQuestion {
answer: string;
}
interface ITest {
local: string;
server: ITestQuestion[];
}
class QuestionHomeController {
test: ITest = {
local: 'something',
server: []
};
constructor() {
// request from server then:
this.test.server = [
{ answer: 'first answer' },
{ answer: 'second answer' }
];
}
}
相关文章:
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 为json对象创建一个动态表
- 用javascript创建另一个对象的实例
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- Mongoose模式:强制创建一个对象数组
- 是否可以创建一个对象,该对象是另一个对象的子集,而不会丢失javascript中的引用
- 有没有一种方法可以创建一个对象并同时为其指定一个动态特性
- javascript创建一个对象来打印数组对象
- 从另一个JSON对象创建JSON对象
- 你能在Javascript中创建一个对象而不声明每个值吗,以及如何
- 如何创建一个对象,其中对象本身是一个函数
- 使用拆分字符串的数组创建一个对象
- 在Javascript中,有没有一种方法可以用一个语句创建一个索引对象数组
- 给定一个对象数组,创建一个函数,该函数返回一个 Object,该 Object 具有按类型分组的路径数组
- 从一个对象创建多个“选择”选项
- 如何在js中使用一个对象创建多个矩形?如何在不同的x轴和y轴上做出它们
- AngularJS/JavaScript从另一个对象创建一个新对象
- 从一个对象创建另一个对象
- 从另一个对象创建一个Object数组
- 在没有javascript的情况下从一个对象创建一个弹出窗口