首页 > 解决方案 > 打字稿中的减法返回未定义

问题描述

我是打字稿的新手,并尝试执行以下代码片段:-

class TestClass
{
  public  t: number = 10;

  public TestClass()
   {
    this.t = this.t - 1;
    console.log(this.t);
   }
}

var obj = new TestClass();

这是游乐场的链接

该片段(当转译为 JavaScript 时)在 chrome 开发人员控制台中打印未定义,而我希望它打印 9。

有人可以帮我解释打字稿和javascript中的行为吗

标签: javascripttypescript

解决方案


似乎您错过了调用该类的方法:

obj.TestClass(); // <---should be called.

演示@JSBIN


Typescript 与 Java 不同,在 Java 中,您必须将构造函数名称与类名称相同。在 Typescript/Javascript 中,您必须使用constructor关键字。所有其他函数都被视为类成员。

带有构造函数的 Demo@Jsbin


推荐阅读