打字稿:调用另一个类的"方法"

Har*_*son 7 typescript

我是java-/type-script的新手,我有一些麻烦抓住他们的概念.我想调用另一个类的方法.但是到目前为止我还没有成功.

export class Foo {
   calcSomeThing(parameter:number): number {
      //stuff
   }
}

class Bar {
   var foo:Foo = new Foo();

   calcOtherThing() {
      result = foo.calcSomething(parameter)
   }
}
Run Code Online (Sandbox Code Playgroud)

什么是调用正确的方式calcSomethingfoocalcOtherThing


编辑:添加了一个实例 foo

Ami*_*mid 13

您的代码有几个问题.

  1. 打字稿区分大小写.所以"calcSomething"和"calcSomeThing"是两种不同的方法.
  2. 访问cals方法和属性的唯一方法是通过"this"关键字:this.foo
  3. 要定义类属性,请使用private/protected/public修饰符.或根本没有修饰符(与公众相同).所以在类体中没有类似"var foo"的东西.

考虑到这一点,固定代码将如下所示:

export class Foo 
{
    calcSomeThing(parameter:number): number 
    {
        //Stuff
    }
}

class Bar 
{
    private foo:Foo = new Foo();

    calcOtherThing(parameter: number): number 
    {
            return this.foo.calcSomeThing(parameter)
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

calcSomeThing是一种非静态的方法/功能.创建一个Foo能够调用它的实例:

let foo:Foo = new Foo();
let result:number = foo.calcSomeThing( parameter );
Run Code Online (Sandbox Code Playgroud)

永远不要var在打字稿中使用- let是你的朋友.