//6,類型別名 /**類型別名不能出現在聲明右側的任何地方。 * 接口 vs. 類型別名 * 另一個重要區別是類型別名不能被extends和implements(自己也不能extends和implements其它類型)。 * 因為 軟件中的對象應該對於擴展是開放的,但是對於修改是封閉的,你應該盡量去使用接口代替類型別名。 * 另一方面,如果你無法通過接口來描述一個類型並且需要使用聯合類型或元組類型,這時通常會使用類型別名。*/ type Int = (a: number) => {}; type Name = string; type NameResolver = () => string; type NameOrResolver = Name | NameResolver;