【发布时间】:2016-09-14 21:19:22
【问题描述】:
我真的不知道什么时候用这个:
interface IFoo
{
bar: string;
}
...
let array: IFoo[];
array.push(<IFoo>{ bar: "test" });
或者
class Foo
{
bar: string;
}
...
let array: Foo[];
let obj = new Foo();
obj.bar = "test";
array.push(obj);
事情是我来自 C# 世界,对我来说,第二种方式更干净,但使用第一种方式也很诱人,尽管它不像第二种选择那么严格。因此,我真的很挣扎,目前,我只是觉得我可以使用我想要的那个,但我很确定它们都有优点和缺点。不幸的是,我在谷歌上找不到任何东西。
谢谢
【问题讨论】:
-
你为什么要在第一个例子中投射?没必要
-
确实是这样,但问题仍然有效;-)
-
如果你只想拥有一个具有属性的对象,那么选择接口的第一个选项,但如果你想拥有该对象的方法,那么就使用一个类
-
@NitzanTomer 的改写:当你想描述数据时使用接口。当您想要提供一个实现(不由服务或外部函数处理)时,请使用类。
标签: typescript