自動拆分字串(可以用乙個字串模板呼叫乙個方法):
用乙個字串模板呼叫乙個方法時,普通字串會被分割,放到乙個陣列中去,對應的變數會被輸出:
function greeter(template, myname: string, age: number)
const myname = "jane";
const age = 20
greeter`my name is $, age: $`
輸出:
上邊ts檔案 編譯成js檔案,原始碼也很有意思,在全域性上(window)掛載了乙個方法,方法最後返回的還是生成的陣列,只不過是新增了乙個row屬性,陣列中新增了乙個不可被列舉的row屬性,值為陣列本身,最後把陣列返回:
// 用了單例設計思想
var __maketemplateobject = (this && this.__maketemplateobject) || function (cooked, raw) ); } else
return cooked;
};function greeter(template, myname, age)
var myname = "jane";
var age = 20;
greeter(__maketemplateobject(["my name is ", ", age: ", ""], ["my name is ", ", age: ", ""]), myname, age);
:string可在變數之後定義型別,沒有定義的變數,以值的型別為準
let obj: string = '123'
let count = 123 // 說明count型別為數字型別,下次為count賦值別的型別ts中會報錯
:any任意型別的值,變數可以被賦值為任意型別
let count: any = 123
count = '23'
:number和 :boolean數字和布林型別
let obj: boolean = true
let count: number = 123
方法是否有返回值:void 無返回值寫在括號後邊,方法不需要任何返回值
function test(): void{}
:string 必須返回字串型別
function test(): string{}
··· ···自定義型別可自定義類,作為變數的型別
class test
}let test: test = new test('lxc') // test變數型別為test型別
?:可選引數下邊age是可選引數,可傳可不傳,如果age後邊還有引數,age之後引數必須為預設值引數
function test(myname:string, age ?:number){}
function test(myname:string, age ?:number, height:number=180){}
如果在方法體裡用到可選引數,需要提前處理可選引數的值,通常可選引數可當作boolean值來使用,比如:
在vue原始碼中,可選引數的應用,其實它是定義了乙個物件的屬性是否可被列舉,enumerable是可選屬性,如果沒有傳,enumerable為undefined,!!undefined為false
export function def (obj: object, key: string, val: any, enumerable?: boolean) )
}
typeScript 入門 資料的變數宣告
typescript學習模板 基本資料型別 數字 let num0 預設any 泛型 let num1 0let num2 number let num3 number 123 字串 let str0 預設any 泛型 let str1 str1 let str2 string let str3 s...
TypeScript 變數宣告
ts 宣告變數有var let和const三種方式,它們在 ts 中的用法與 js 一致。與其他語言的變數宣告相比,var宣告的變數有一些比較奇怪的作用域規則,主要體現在 最常見的例子如下 function f1 100 i f1 很多人認為輸出列印為 0 到 10 的數字,然而真實列印為 10 個...
TypeScript入門須知
1.強型別語言 不允許改變變數的資料型別,除非進行強制型別轉換 2.弱型別語言 變數可以被賦予不同的資料型別 3.靜態型別語言 在編譯階段確定所有的變數型別 4.動態型別語言 在執行階段確定所有的變數型別 1.初始化 npm init y 2.全域性安裝ts cnpm i typescript g ...