如何在打字稿中的对象中使用类变量?

时间:2018-07-24 12:22:55

标签: javascript typescript

假设我在打字稿文件中有一个类,如下所示:

export class app {
  let variable3="Hellow world"
  constructor(count){
      this.variable1="something",
      this.variable2=1+count;
   }

}

现在在另一个文件中,我将此类导出为:

import { app } from './directory';
let pageApp:app;

现在,如何在这里访问这些变量?

5 个答案:

答案 0 :(得分:3)

您对类的定义在语法上是错误的,在类中没有let并且在语义上是错误的,您需要声明所有字段:

// appClass.ts
export class app {
    variable1: string // implicitly public in typescript
    variable2: number
    variable3 = "Hellow world"
    constructor(count : number) {
        this.variable1 = "something";
        this.variable2 = 1 + count;
    }

} 

关于用法,导入应该可以,但是您需要导入该类所在的文件(而不是导入所建议的目录),并且需要重新创建该类以创建实例

import { app } from './appClass'; // notice no extension (no .js or .ts)
let pageApp:app = new app(1);
console.log(pageApp.variable2);

答案 1 :(得分:2)

参考-> Typescript classes

假设您将课程分类为:

export class app {
   //you can specify Public, private, and protected modifiers
   // default consider as public so you can access in other class as well.

   public variable1="Hellow world";
   public variable2: any
   public variable3: any;

  constructor(count){
      this.variable1="something",
      this.variable2=1+count;
   }
}

导入另一个文件

import { app } from './directory';
let var_name = new app('pass_count_here')

//Access
var_name.variable1

答案 2 :(得分:0)

您可以通过创建对象2来简单地使用文件2中文件1中的类A的方法和变量

这是一个简短的例子

文件1:App.ts

export class App {

variable1: string;
variable2: number;


constructor(count){
    this.variable1="something";
    this.variable2= 1 + count;
 }

}

文件2:File2.ts

import {App} from './App';
console.log("Hello ", new App(2).variable1);

它将正常工作。同样,您也可以使用该类的方法。

答案 3 :(得分:0)

您需要实例化类let instance = new App(1)

您可以在类中实现一个吸气剂

BEGIN
  FOR sess IN (select sid,serial# from v$session where status<>'ACTIVE')
  LOOP
      EXECUTE IMMEDIATE 'alter system kill session ''' || sess.sid  || ',' 
        || sess.serial# || ''' immediate';
  END LOOP;
END;

或者您可以将变量声明为public

public getVariable(){
  return variable1;
}

答案 4 :(得分:0)

通常,术语类变量用于表示类成员的变量,即存在于类中但不存在于实例中的变量。这意味着,它们在任何实例构建之前就存在。

在 TypeScript 中,这些类变量是使用 static 关键字创建的。 (这就是为什么它们也被称为静态方法。)在您的示例中,只有 variable1 可以成为类变量,因为其他两个变量是实例成员(也称为实例变量),因为它们在实例化过程中获取它们的值 - 在 constructor 方法中。

为了使 variable1 成为类方法,将其设为 static,如下所示:

export class app {
   static variable1 = "Hello, World";

   public variable2: any;
   public variable3: any;

  constructor(count){
      this.variable1 = "something";
      this.variable2 = 1 + count;
   }
}

现在,它可以从类app 中寻址,无需任何实例化:

console.log(app.variable1)  // Hello, World