TypeScript 和字段初始化器

新手上路,请多包涵

如何以这种方式在 TS 中初始化一个新类(在 C# 中显示我想要的示例):

 // ... some code before
return new MyClass { Field1 = "ASD", Field2 = "QWE" };
// ...  some code after

原文由 Nickon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 502
2 个回答

更新

自从写下这个答案以来,已经出现了更好的方法。请参阅下面有更多投票和更好答案的其他答案。我无法删除此答案,因为它被标记为已接受。


旧答案

TypeScript codeplex 上有一个问题描述了这一点: Support for object initializers

如前所述,您已经可以通过在 TypeScript 中使用接口而不是类来做到这一点:

 interface Name {
    givenName: string;
    surname: string;
}
class Person {
    name: Name;
    age: number;
}

var bob: Person = {
    name: {
        givenName: "Bob",
        surname: "Smith",
    },
    age: 35,
};

原文由 Wouter de Kort 发布,翻译遵循 CC BY-SA 4.0 许可协议

这个怎么样…

 function as_<T>(o: T) { return o; };

 // ... some code before
return as_<MyClass>({ Field1 = "ASD", Field2 = "QWE" });
// ...  some code after

原文由 Terukazu Inoue 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进