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