我有一个类 DropdownItem ,它为下拉选项创建了一个蓝图。
class DropdownItem {
value: string;
name: string;
....
}
是否还有其他仅将其命名为 DropdownItemInterface 的选项?
interface DropdownItemInterface { // ???
value: string;
name: string;
}
最佳实践是什么,或者有最佳实践吗?
答案 0 :(得分:3)
惯例是只使用类名作为类型。与大多数(但不是全部)具有类的语言一样,该类定义实现和接口。您可以 定义一个单独的接口,但这不是必需的,并且标准做法不是这样做的。
请注意,在TypeScript中,即使它们没有通过声明的接口具有类型关系,也可以与分配兼容。例如:
class DropdownItem {
value: string = "";
name: string = "";
}
function example(item: DropdownItem): void {
//...
}
const item1 = {value: "x", name: "foo"};
example(item1); // No error here, even though `item1` is not
// declared of type DropdownItem
实际上,您用作DropdownItem
的对象只必须具有正确类型的value
和name
,即使它还有其他东西:
const item2 = {value: "y", name: "bar", other: 42};
example(item2); // No error here, it's okay that it has an
// extra property
如果您愿意决定使用单独的界面,我认为没有任何一种标准的命名方式。我在TypeScript中看到的大多数接口只是以常规方式命名的,没有任何特定的指示符说明它们是接口。在极少数情况下使用指标时,通常使用I
前缀,例如IDropDownItem
,但我怀疑我已经在习惯于使用其他语言或(显示我的年龄)COM的人们编写的代码中看到了这一点。