2017-06-19 134 views
0

我想在TypeScript中初始化一个接口。无法在TypeScript中设置未定义的属性XXX

export interface TestGroup { 
    "id": number; 
    "type": TestType; 
    "interval"?: number; 
} 


import {TestGroup} from "../../gen/api"; 
public functionConfig: TestGroup; 
. 
. 
. 
this.functionConfig.id = testGroup.functionTestConfig; 

我得到这个错误:

TypeError: Cannot set property 'id' of undefined

你能帮帮我吗?

+0

需要functionConfig初始化为某个值,现在它是undefiend,你最终会做undefined.id这是无效的JavaScript。 – toskv

+0

这是什么? 'this.functionConfig'集合在哪里?我们应该猜测? – Amy

+0

那么你声明'functionConfig',但你不给它任何值,因此它是未定义的。如果你做了'this.functionConfig = {test:“value”}'或者甚至只是'this.functionConfig = {}'就会被定义,所以之后你可以做'this.functionConfig.id =“whatever” ' –

回答

1

您的functionConfig有一个类型,但它实际上是undefined。所以,你需要初始化:

public functionConfig: TestGroup = {id: 0, type: 'YourTestTypeHere'}; 

或您的默认值是

评论

var activateOnWeekDay: Array<boolean> = []; 
+0

非常感谢。你能告诉我:当我有一个像“activateOnWeekDay”这样的变量时,我如何初始化Array :Array ; – Sohrab

+0

请参阅编辑部分。你只需要分配一个空数组 –

相关问题