03.Typescript基本數據類型

Javascript數據類型

咱們知道 Javascript 數據類型分爲 原始數據類型引用數據類型typescript

原始數據類型 包括字符串(String)、數字(Number)、布爾(Boolean)、對空(Null)、未定義(Undefined)、Symbol共6種類型。編程

引用數據類型 包括對象(Object)、數組(Array)、函數(Function)。數組

Typescript 的數據類型在 Javascript的基礎上,增長了枚舉(Enum),元組(Tuple),Any,Void,Never等類型。函數

Typescript原始數據類型

Typescript 的基礎數據類型示例代碼:spa

// 布爾值
let isValid: boolean = true;
// 數字類型
let max: number = 2000;
// 字符串
let msg: string = "Hello World";
// null
let none: null = null;
// undefined
let unkown: undefined = undefined;

注意:code

  1. 類型註解一概小寫,不要使用大寫英文。
  2. 使用構造函數 String 生成的實例,本質上是對象,而不是字符串類型,NumberBoolean 同理。
let min :number = new Number(3); 
let str :string = new String('黃小米');

報錯以下,NumberStringBooleanObject 這些類型指的是非原始的裝盒對象,既然生成對象 Object,確定與前面的類型註解衝突,這就是緣由。對象

image.png

Typescript 引用數據類型

數組

TypeScript 有兩種方式能夠定義數組。 blog

第一種,元素類型[],表示由此類型元素組成的一個數組:接口

let list: number[] = [1, 2, 3, 4];

第二種,使用數組泛型,Array<元素類型>ip

let list: Array<number> = [1, 2, 3, 4];

關於泛型,請參考後面的泛型一章。

對象

object 表示非原始類型,也就是除 numberstringbooleansymbolnullundefined 以外的類型。

let person: object = { name: "黃小米", age: 30 };
person.name = "楊過";

雖然 Typescript 提供了對象類型,可是對象內部的屬性,咱們沒法進行類型約束。person 這個對象裏面有 nameage 兩個屬性,可是你卻沒法使用類型註解約束其類型。
同時,當咱們修改 name楊過 時,發現沒法編譯經過,報錯以下:

image.png

object 類型並不適合這種應用場景。使用 object 類型,通常表示像 Object.create 這樣的API。

咱們通常使用 接口(Interface)來更詳細的描述對象這一數據類型,請參照接口這一章。

Any

any 表示在編程階段未知類型的變量指定的一種類型。

var year: any = '2020-05-20';
year = 2020;
year = new Date(2020);
year.getFullYear();
  1. 類型檢查器不會檢查 any 類型的變量,編譯階段直接經過。
  2. any 類型容許被賦值爲任意類型,甚至能夠調用其屬性、方法。

Void

某種程度上來講,void 類型像是與 any 類型相反,它表示沒有任何類型。 當一個函數沒有返回值時,你一般會見到其返回值類型是 void

function test() :void {
    console.log('Hello World!')
}
相關文章
相關標籤/搜索