angular2中的对象初始化

时间:2016-12-29 13:55:44

标签: angular webpack

我有一个对象payment并在成功进行http调用后进行初始化,作为响应,它会获得一个键account,因此要声明付款对象我声明为public payment = {}(目前这个没有那个account密钥。我在不同的函数中使用account,因为在编译时付款是空的对象webpack给了我这个错误Property 'account' does not exist on type '{}'.。但是,如果我将付款对象初始化为public payment = {account: ""},则此错误会消失,但我认为这不是一种正确的方法,因此我可以如何防止此问题。

3 个答案:

答案 0 :(得分:0)

创建#controls { height: 600px; width: 800px } #wrapper { width: 800px; height: 300px } #TM { width:100%; border:1px solid black; height: 300px } #BL { width:50%; border:1px solid black; height: 300px; float:left; margin-top: 2px; margin-left: 2px; } #BR { width:50%; border:1px solid black; height: 300px; float:right; margin-top: 2px; margin-left: 2px; } 类型:

Payment

并按原样初始化:

class Payment {
    account: string // or whatever
}

这不是绝对必要的 - typescript编译器可以很好地编译现有代码。但是,随着应用程序的增长,组织应用程序可以通过代码完成和更好的类型检查获得回报。

答案 1 :(得分:0)

我认为最好的方法是开始使用对象...你应该有一个名为Payment的javascript类型,你可以实例化而不具备你期望的所有属性的数据。

然后在初始化主对象时,你会有:

function Payment() {
  var self = this;
  self.Account = null;
}
function MyController() {
  var self = this;
  self.payment = new Payment();
}

起初,这似乎是不必要的,但是一旦应用程序变得更复杂,这些对象就变得非常有用,因为它为您提供了一个放置函数和其他衍生属性的地方,从长远来看。 / p>

答案 2 :(得分:0)

如果要在多个方法中使用,

对象需要在构造函数中初始化。

找到以下代码供您参考。

  

<强> Component.cs

import { Component, ElementRef, ViewChild } from '@angular/core';
import { Router } from '@angular/router';

@Component({
    moduleId: module.id,
    selector: 'MyPage',
    templateUrl: 'mypage.component.html'
})

export class MyPageComponent {    
    public account: Account;

    constructor(private router: Router) {
        this.account = new Account();
    }
}

谢谢。