如何在Typescript中定义对象变量的类型?

时间:2014-12-07 04:22:27

标签: javascript typescript

我在班级a中有这个对象变量:

class a {
  abc = {
    def: number = 22  // won't work
  }
  ghi: number = 23; // works

..

如何定义(不使用接口而内联)对象def内的变量abc的类型?

我尝试使用此语法,但不接受它。

2 个答案:

答案 0 :(得分:2)

它可能是 - 使用断言和内联声明:

class MyClass {
  abc = <{ def : number }>{
    def: 1,
  };  
}

相同,但使用显式接口

更具可读性
interface IMyObject{
  def : number 
}

class MyClass1 {
  abc = <IMyObject>{
    def: 1,
  };  
}

检查here

为什么会这样?

class a {
  abc = {
    def: number = 22  // won't work
  }
  ghi: number = 23; // works

因为ghi是类a的成员/属性 - 所以就像这样:

class MyClass {
  // standard way how to define properties/members of a class
  public obj: number;
  private other: string;
}

答案 1 :(得分:0)

仅供参考。不使用类型断言:

class a {
  abc : {def:number} = {
    def : 22  // Works
  }
  ghi: number = 23; // works
}

注意:在您的情况下,最好让编译器推断出类型签名。