TypeScript基礎類型,類實例和函數類型聲明


TypeScript(TS)是微軟研發的編程語言,是JavaScript的超集,也就是在JavaScript的基礎上添加了一些特性.其中之一就是類型聲明.

一、基礎類型

TS的基礎類型有 Boolean,Number,String,Array,Tuple,Enum,Any,Void,Null,Undefined,Never,Object.

布爾類型 Boolean

let isDone: boolean = false

*在變量名后用冒號:T(T 代表TS的類型)聲明變量的類型。

數字類型 Number

//支持十進制和十六進制,ES6中引入的二進制和八進制
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

字符串類型 String

let name: string = `Gene`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ name }.I'll be ${ age + 1 } years old next month.`;

數組類型 Array

//有兩種聲明方式
//1 T[]
let list: number[] = [1, 2, 3];
let list: any[] = [1, true, "free"];
//2 Array<T>
let list: Array<number> = [1, 2, 3];

元組類型 Tuple

//可允許表示固定數量的數組,但是數組中可以具有不同的元素類型
let x: [string, number];
// Initialize it
x = ['hello', 10]; // OK
// Initialize it incorrectly
x = [10, 'hello']; // Error

枚舉類型 Enum

像java等其它語言一樣,枚舉類型可以為一組數值賦予友好的語義化名字.

//默認從0開始編號,也可以只指定第一個元素的編號,之后的編號依次遞增,也可以全部手動賦值編號;可以由枚舉的值得到它的名字
enum Color {Red = 1, Green, Blue} let colorName: string = Color[2]; alert(colorName); // 顯示'Green'因為上面代碼里它的值是2

任意類型 Any

任意類型直接讓類型檢查器通過編譯階段的檢查.

let notSure: any = 4;
notSure = "maybe a string instead";//ok
notSure = false; // ok

Void類型

與any類型相反,它表示沒有任何類型

//我們可以為一個沒有任何返回值的函數的返回值類型定義為void
function warnUser(): void {
    alert("This is my warning message");
}
//當聲明一個void類型變量時,只能賦值為undefined 和 null
let unusable: void = undefined;

Null 和 Undefined

//默認情況下null和undefined是所有類型的子類型.
let u: undefined = undefined;
let n: null = null;

Never類型

never類型表示的是那些永不存在的值的類型。
never類型也是任何類型的子類型,也可以賦值給任何類型;

// 返回never的函數必須存在無法達到的終點 
function error(message: string): never { 
throw new Error(message); 
}

二、類型斷言

類似其他語言的強制類型轉換
類型斷言有兩種形式。

其一是“尖括號”語法:

let someValue: any = "this is a string";

let strLength: number = (<string>someValue).length;

另一個為as語法:

let someValue: any = "this is a string";

let strLength: number = (someValue as string).length;

三、類的實例的類型聲明

let greeter: Greeter;
greeter = new Greeter("world");

四、函數類型的聲明

函數類型包含兩部分:參數類型和返回值類型,其中返回值類型ts可通過返回語句自動推斷得出.

js中:

function add(x, y) {
    return x + y
}

TS中:

function add(x: number, y: number): number {
    return x + y;
}

其中函數聲明時的參數有必傳參數,可選參數,默認參數,剩余參數.

必傳參數

params:參數

可選參數

params?:參數類型

調用時可以不填;

默認參數

params=默認值

調用時可以不填;

聲明時一般放在最后一個位置,如果不是,那么調用的時候必須要傳入undefined參數值

function buildName(firstName = "Will", lastName: string) {
    return firstName + " " + lastName;
}

let result1 = buildName("Bob"); // error
let result2 = buildName("Bob", "Adams", "Sr.");  // error
let result3 = buildName("Bob", "Adams");// ok
let result4 = buildName(undefined, "Adams"); // ok

剩余參數

...restOfName: string[]

function buildName(firstName: string, ...restOfName: string[]) {
    return firstName + " " + restOfName.join(" ");
}

let employeeName = buildName("Joseph", "Samuel", "Lucas", "MacKinzie");


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM