![](/img/trans.png)
[英]Is there a way to access properties of a parent class in Typescript/Phaser?
[英]Access properties of a class in Typescript
假设我在Typescript中有一个类。
class MyAnimal {
constructor(param1, param2) {
voice: param1;
height: param2;
}
}
我如何实际构造类,以便在使用对象时可以访问这些属性:
var gorilla = new MyAnimal(param1, param2);
上面产生一个编译错误: Error TS2094: "The property voice does not exist on value of type 'MyAnimal'."
我从javascript中转换了它,它工作正常,但是它看起来像这样:
var MyAnimal = function (param1, param2) {
return {
voice: param1,
height: param2,
}
}
有了它,我可以整天访问属性
var gorilla = MyAnimal(param1, param2);
if (gorilla.height < 5)
alert("It's a baby gorilla!");
我对Typescript / javascript很新,所以还有很多我还在想弄清楚。 我不认为应该很难访问属性。 我怀疑我只是试图错误地访问它。
我只是把班级弄错了吗? 为什么我在新建MyAnimal
实例时无法检索属性?
constructor(param1, param2) {
voice: param1;
height: param2;
}
此代码只是定义了两个名为“voice”和“height”的语句标签,并且不对参数执行任何操作。 相反,你想要做的是:
class MyAnimal {
voice: string;
height: number;
constructor(param1, param2) {
this.voice = param1;
this.height = param2;
}
}
您可能需要阅读TypeScript教程以了解该语言的基础知识。
这可能是修复代码的最简单方法。 这会自动从构造函数参数创建公共属性。
class MyAnimal {
constructor(public voice, public height) {
}
}
所以现在你可以这样做:
var animal = new MyAnimal("rawr", 23);
// use animal.voice
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.