在TypeScript中的对象文字中输入定义怎么做?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

在TypeScript中,可以为属性声明类型,例如:

class className{
    property : string;
};

我应该如何编写代码来为对象字面值中的属性声明类型?这样的代码不能编译:

var obj = {
    property: string;
};

提问于
用户回答回答于

差点儿就对了,只需要用=a 替换:。可以使用对象类型文字或一个接口。使用对象类型字面值与所拥有的接近:

var obj: { property: string; } = { property: "foo" };

但是你也可以使用一个接口:

interface MyObjLayout {
    property: string;
}

var obj: MyObjLayout = { property: "foo" };
用户回答回答于

使转换操作符来简化(通过将null转换为所需的类型)。

var obj = {
    property: <string> null
};

一个更长的例子:

var call = {
    hasStarted: <boolean> null,
    hasFinished: <boolean> null,
    id: <number> null,
};

这比两个部分要好得多(一个声明类型,另一个声明默认值):

var callVerbose: {
    hasStarted: boolean;
    hasFinished: boolean;
    id: number;
} = {
    hasStarted: null,
    hasFinished: null,
    id: null,
};

扫码关注云+社区