39
A
回答
58
接口可扩展
interface A {
x: number;
}
interface B extends A {
y: string;
}
也增强
interface C {
m: boolean;
}
// ... later ...
interface C {
n: number;
}
类型别名,但是,可以代表一些东西接口不能
type NumOrStr = number | string;
type NeatAndCool = Neat & Cool;
type JustSomeOtherName = SomeType;
所以一般情况下,如果你只是一个普通的对象类型,如你的问题所示,一个接口通常是一个更好的方法。如果你发现自己想写一些不能写成接口的东西,或者想给一些不同的名称,那么类型别名会更好。
+2
'然而,类型别名可以表示一些接口无法接口的东西在我看来,您的示例'NeatAndCool'和'JustSomeOtherName'可以创建为扩展现有的'Neat','Cool'或'SomeType'类型的接口。 –
3
4
0
类型有点像接口,反之亦然:两者都可以通过一个类实现。 但有一些重要的区别: 1.当Type由类实现时,属于Type的属性必须在类内初始化,而使用Interface时必须声明它们。 2. as @ryan提到:接口可以扩展另一个接口。类型不能。
type Person = {
name:string;
age:number;
}
// must initialize all props - unlike interface
class Manager implements Person {
name: string = 'John';
age: number = 55;
// can add props and methods
size:string = 'm';
}
const jane : Person = {
name :'Jane',
age:46,
// cannot add more proprs or methods
//size:'s'
}
相关问题
- 1. IComparable和IEquatable接口有什么区别?
- 2. pg_hba.conf中的“local”和“localhost”连接类型有什么区别?
- 3. oEmbed中的链接和丰富类型有什么区别?
- 4. Typescript中的接口和类之间的区别
- 5. 抽象类和接口之间有什么区别?
- 6. 使用类和接口有什么区别?
- 7. 模拟类和接口之间有什么区别?
- 8. 泛型类型和泛型类型定义有什么区别?
- 9. “流类型”套接字和“数据报”套接字类型有什么区别?
- 10. MySQL中的套接字和端口连接有什么区别?
- 11. 指针和值接收器类型有什么区别?
- 12. ASN.1枚举类型和选择类型有什么区别?
- 13. 潜类型和Manifest类型有什么区别?
- 14. 类型定义和类型引用有什么区别?
- 15. 接口类和抽象类有什么区别和相似之处?
- 16. REPL和口译员有什么区别?
- 17. Spring的TestExecutionListener接口中prepareTestInstance和beforeTestMethod有什么区别?
- 18. 接口映射和中介模块有什么区别?
- 19. 文档类型有什么区别
- 20. HostingEnvironment类和HttpRuntime类有什么区别?
- 21. java.awt.Rectangle类和java.awt.geom.Rectangle2D.Double类有什么区别?
- 22. 有什么区别`和$(Bash中有什么区别?
- 23. Moq-ing一个类或接口有什么区别?
- 24. ASP和SaaS模型有什么区别?
- 25. 函子和“泛型”有什么区别
- 26. UML中的构造型和类继承有什么区别?
- 27. Git中的树和提交类型有什么区别?
- 28. Cassandra数据类型中的INT和VARINT有什么区别?
- 29. MySQL中BLOB和TEXT数据类型有什么区别?
- 30. `pandas.read_csv`中`str`和`object`数据类型有什么区别?
类型不能像接口扩展那样扩展。类型只是一个类型的别名。 – PSL
Guidance at here:https://basarat.gitbooks.io/typescript/content/docs/types/type-system.html#type-alias – basarat
我主要使用外部数据的类型,例如来自JSON文件,或者如果你只写函数而不使用OOP类。 – Kokodoko