1、參數類型:在參數名稱后面使用冒號來指定參數的類型
var myname:string = 'wzn' => "use strict"; var myname = 'wzn';
這個時候就申明了一個字符串類型的變量myname,賦值類型后,后面再對這個值賦值的時候會去檢查。如果后續賦值為數字,編輯器就會提示,不能把數字賦值給字符串。雖然有提醒,但是編譯以后的js代碼是不會錯的
當沒有申明變量是字符串類型的時候,后續賦值為數字,ts也會報錯,這是因為ts中有一個機制,叫做類型推斷機制。賦值為字符串,后面就認為這個變變量是字符串。

那么我確實是這個變量既能是字符串,也能是數字,就申明變量類型為any。說明這個變量可以是任何值
除了string和any以外,ts還有其他幾種類型
數字
var age:number = 13 => "use strict"; var age = 13;
布爾
var man:boolean = true => "use strict"; var man = true;
是否有返回值
function test(): void{} => "use strict"; function test() { }
這個標示不需要任何返回值
function test(): string{ return '' } => "use strict"; function test() { return ''; }
聲明一個string類型的返回值
function test(name: string){} test('') => "use strict"; function test(name) { } test('');
給方法變量聲明類型,調用的時候,參數只能是字符串類型
自定義類型
class Person { name: string; age: number } var zhangsan: Person = new Person(); zhangsan.name = 'zhangsna', zhangsan.age = 19
2、默認參數:在參數聲明后面用等號來指定參數的默認值
function test(a: string, b: string, c: string) { console.log(a); console.log(b); console.log(c); } test('xx', 'yy', 'zz')
這個時候要傳三個參數,傳一個或兩個都不行,數量不夠,這時候可以給參數指定默認值,這個時候就只傳兩個參數
function test(a: string, b: string, c: string='zina') { console.log(a); console.log(b); console.log(c); } test('xx', 'yy')
帶默認值的參數必須寫最后面
3、可選參數:在方法的參數聲明后面用問號來標明此參數為可選參數
function test(a: string, b?: string, c: string='zina') { console.log(a); console.log(b); console.log(c); }
這樣表示b是可選參數,在調用的時候可以只調用一個參數
function test(a: string, b?: string, c: string='zina') { console.log(a); console.log(b); console.log(c); } test('xx')
這樣的結果是,a參數是'xx',b參數的undefined,c參數的默認值是zina
注意:一個必填的參數不能在可選參數后面