簡述typescript
簡稱ts,是js的一個超集,也是帶有型別檢測的js,擴充了js語法。
優點:程式更容易理解;減少錯誤(編譯期間排除常見錯誤);包容性強(相容js)。
特點:跨平臺;物件導向(類、介面、列舉);型別檢測。
ts的資料型別
除js的型別外,還包含enum(列舉)、any(任意值)、void(表示無,常用於表示無返回值的函式)
ts中的類、介面、列舉、模組
類(class):是自定義的引用資料型別,簡稱類。
介面(interface):描述一個物件的屬性和方法,是個集合。
列舉(enum):物件所有可能取值的集合。
模組:ts中的模組與js相似,import匯入、export匯出
泛型
是一種特性,允許定義函式、類、介面等資料結構時,可使用型別引數的佔位符,從而增加程式碼靈活性和複用性。
優點:增加靈活性、型別安全、可讀性和可維護性。
應用場景:建立可複用的元件或函式、處理不確定的資料型別、操作不同型別的集合、函式引數型別檢測等等。
interface、type
相似之處:
兩者都可用來描述object和function;
兩者都可以被繼承。
不同之處:
type可定義基本型別,而interface不行;
type可宣告聯合型別(列子:string|number);
interface有宣告合併(多次宣告同一個介面,ts會將其合併到一個宣告中),而type不會。
keyof、typeof
keyof用於獲取物件型別的鍵的並集;
typeof用於獲取值的型別。