我在班级a
中有这个对象变量:
class a {
abc = {
def: number = 22 // won't work
}
ghi: number = 23; // works
..
如何定义(不使用接口而内联)对象def
内的变量abc
的类型?
我尝试使用此语法,但不接受它。
答案 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
}
注意:在您的情况下,最好让编译器推断出类型签名。