我有关于Angular/TypeScript的问题。也许这很明显,但我需要确认。
我正在创建接口并将其导出:
export interface MainObject {
location: string;
methodType: string;
securityLevel: string;
provider: string;
}
我在组件中导入它并创建空对象:
public descriptorCreateFinal: MainObject
当我想给对象赋值时:
descriptorCreateFinal.location = 'someString';
我看到错误,未声明“location”。
如果我像这样创建对象:
public descriptorCreateFinal: MainObject = {
location: '',
methodType: '',
securityLevel: '',
provider: '',
}
我可以给“descriptorCreateFinal.location”赋值,没有任何问题。
在这里我想知道,我是否真的需要在声明阶段设置对象中所有变量的值?
1条答案
按热度按时间0vvn1miw1#
声明
这只是声明了对象,并没有创建它。所以在你创建/赋值它之前,它是未定义的。
示例
因此,正如您已经注意到的,当您实际分配对象时,它确实起作用:
速记示例化
但是,这两种方法中的任何一种都可以工作,具体取决于项目中的 typescript 有多严格:
备选