我正在尝试使用离子2在typescript中编写基本类。这是我的代码:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import {FishPage} from '../fish';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController) {
this.salary = 7;
}
}
打字稿没有编译。我收到了这个错误:
错误TS2339:'HomePage'类型中不存在属性'salary'。
如何在构造函数中定义薪水?
答案 0 :(得分:3)
需要使用public / protected / private(与navCtrl
成员一样)在构造函数签名中定义类成员,或者像这样:
export class HomePage {
private salary: number;
constructor(public navCtrl: NavController) { ... }
}
Ionic不是一个打字稿库,而是一个javascript,因此他们的文档是javascript而不是打字稿 使用javascript(当使用es6类时)你不需要像打字稿那样声明你需要的成员。
当我的答案中的打字稿代码编译成javascript时,它看起来像这样:
var HomePage = (function () {
function HomePage(navCtrl) {
this.navCtrl = navCtrl;
}
return HomePage;
}());
正如你所看到的,这里也没有关于公共/私人或成员声明的痕迹,这只是一个打字稿的东西而且它可能来自(可能)第一个版本
答案 1 :(得分:2)
你可以像这样申报工资
export class HomePage {
salary: number;
constructor(navCtrl: NavController) {
this.salary = 7;
}
}
注意:无需使用public
关键字来声明公共成员。
使用private salary: number;
将其设为私有。
要使用默认值初始化,请使用salary: number = 10;