接口和抽象类之间到底有什么区别?

TypeScript中的这些语句(接口与类型)有什么区别?