typeScript 數據類型 基礎知識總結
- 1、vscode配置自動編譯
- 1、第一步 tsc --init 生成tsconfig.json 改 “outDir”: “./js”,
- 2、第二步 任務 - 運行任務 監視tsconfig.json
- 2、typeScript中的數據類型
typescript中爲了使編寫的代碼更規範,更有利於維護,增加了類型校驗,在typescript中主要給我們提供了 以下數據類型:
布爾類型(boolean)
數字類型(number)
字符串類型(string)
數組類型(array)
元組類型(tuple)
枚舉類型(enum)
任意類型(any)
null 和 undefined
void類型
never類型
布爾類型(boolean)
es5的寫法 (正確寫法) ts中(錯誤寫法)
var flag=true;
flag=456;
typescript中爲了使編寫的代碼更規範,更有利於維護,增加了類型校驗
寫ts代碼必須指定類型
var flag:boolean=true;
// flag=123; //錯誤
flag=false; //正確
console.log(flag);
數字類型(number)
var num:number=123;
num=456;
console.log(num); /正確/
num='str'; //錯誤
字符串類型(string)
var str:string='this is ts';
str='haha'; //正確
str=true; //錯誤
數組類型(array)
ts中定義數組有兩種方式
- es5定義數組
var arr=['1','2']; //es5定義數組
- 第一種定義數組的方式
var arr:number[]=[11,22,33];
console.log(arr);
- 第二種定義數組的方式
var arr2:Array<number>=[11,22,33];
console.log(arr2)
- 第三種
var arr3:any[]=['131214',22,true];
console.log(arr3);
元組類型(tuple) 屬於數組的一種
// var arr:Array<number>=[11,22,33];
// console.log(arr)
//元祖類型
// let arr:[number,string]=[123,'this is ts'];
// console.log(arr);
枚舉類型(enum)
- 隨着計算機的不斷普及,程序不僅只用於數值計算,還更廣泛地用於處理非數值的數據。
例如:性別、月份、星期幾、顏色、單位名、學歷、職業等,都不是數值數據。
在其它程序設計語言中,一般用一個數值來代表某一狀態,這種處理方法不直觀,易讀性差。
如果能在程序中用自然語言中有相應含義的單詞來代表某一狀態,則程序就很容易閱讀和理解。
也就是說,事先考慮到某一變量可能取的值,儘量用自然語言中含義清楚的單詞來表示它的每一個值,
這種方法稱爲枚舉方法,用這種方法定義的類型稱枚舉類型。
enum 枚舉名{
標識符[=整型常數],
標識符[=整型常數],
...
標識符[=整型常數],
} ;
enum Flag {success=1,error=2};
let s:Flag=Flag.success;
console.log(s);
enum Flag {success=1,error=2};
let f:Flag=Flag.error;
console.log(f);
000010
-1
-2
// enum Color {blue,red,'orange'};
// var c:Color=Color.red;
// console.log(c); //1 如果標識符沒有賦值 它的值就是下標
// enum Color {blue,red=3,'orange'};
// // var c:Color=Color.red;
// // console.log(c); //3
// var c:Color=Color.orange;
// console.log(c); //4
enum Err {'undefined'=-1,'null'=-2,'success'=1};
var e:Err=Err.success;
console.log(e);
任意類型(any)
// var num:any=123;
// num='str';
// num=true;
// console.log(num)
任意類型的用處
var oBox:any=document.getElementById('box');
oBox.style.color='red';
// null 和 undefined 其他(never類型)數據類型的子類型
// var num:number;
// console.log(num) //輸出:undefined 報錯
// var num:undefined;
// console.log(num) //輸出:undefined //正確
// var num:number | undefined;
// num=123;
// console.log(num);
//定義沒有賦值就是undefined
// var num:number | undefined;
// console.log(num);
// var num:null;
// num=null;
//一個元素可能是 number類型 可能是null 可能是undefined
var num:number | null | undefined;
num=1234;
console.log(num)
// void類型 :typescript中的void表示沒有任何類型,一般用於定義方法的時候方法沒有返回值。
//es5的定義方法
// function run(){
// console.log('run')
// }
// run();
//表示方法沒有返回任何類型
/*
//正確寫法
function run():void{
console.log('run')
}
run();
*/
//錯誤寫法
/*
function run():undefined{
console.log('run')
}
run();
*/
//正確寫法
/*
function run():number{
return 123;
}
run();
*/
// never類型:是其他類型 (包括 null 和 undefined)的子類型,代表從不會出現的值。
//這意味着聲明never的變量只能被never類型所賦值。
/*
var a:undefined;
a=undefined;
var b:null;
b=null;
*/
var a:never;
// a=123; //錯誤的寫法
a=(()=>{
throw new Error('錯誤');
})()