關(guān)于JS的基礎(chǔ)類型(簡(jiǎn)單對(duì)比講下):
JS有七種類型:String、Number、Boolean、Symbol、Undefined、Null、bigint 和 Object。
1.關(guān)于TS的基礎(chǔ)類型(類型注解):
1、boolean(布爾值);
2、number(數(shù)字);
3、string(字符串);
4、Array(數(shù)組);
5、Tuple(元組);
6、enum(枚舉);
7、Any(任何類型);
8、Void(沒(méi)有任何類型);
9、unKnow
10、Never(永不存在的值的類型)<極少使用或不使用,常用來(lái)做異常拋出>;
11、Object(非原始類型);
12、Null 和 Undefined;
13、類型斷言。
1.1、boolean(布爾值)
let isOk: boolean = false;
1.2、number(數(shù)字)
let toolsNumber: number = 6;
1.3、string(字符串)
let tools: string = 'pen';
1.4、Array(數(shù)組)
let toolsAry: Array<string> = ['pen', 'handle', 'head'];
1.5、Tuple(元組)
元組類型允許表示一個(gè)已知元素?cái)?shù)量和類型的數(shù)組,各元素的類型不必相同。
let toolsAry: [string, number, string] = ['Jean', 18, 'teacher'];
1.6、enum(枚舉)
enum類型是對(duì)JavaScript標(biāo)準(zhǔn)數(shù)據(jù)類型的一個(gè)補(bǔ)充
enum Sex {
'男',
'女',
'沃爾瑪購(gòu)物袋',
'阿帕奇武裝直升機(jī)'
}
let peopleSex: number = Sex['男'];
1.7、Any(任何類型)
let peopleSex: any = 996;
peopleSex= "沃爾瑪購(gòu)物袋";
peopleSex= false;
//也可以是數(shù)組
let groupPeople: any[] = [88, '男性'];
groupPeople[1] = 88;
1.8、Void(沒(méi)有任何類型)
//一般作為函數(shù)返回值類型返回使用,聲明一個(gè)void類型的變量沒(méi)有什么大用,因?yàn)槟阒荒転樗x予undefined和nul
let child:void = null
1.9、unknow(未知類型的值,unknown類型的值不能直接賦值給其他變量)
let unknowVal: unknow
unknowVal = 6
unknowVal = 'str'
1.10、Never(永不存在的值的類型)<極少使用或不使用,常用來(lái)做異常拋出>
返回任何類型的數(shù)值都會(huì)報(bào)錯(cuò),函數(shù)默認(rèn)返回空也報(bào)錯(cuò)
// 返回never的函數(shù)必須存在無(wú)法達(dá)到的終點(diǎn)
function error(message: string): never {
throw new Error(message);
}
// 推斷的返回值類型為never
function fail() {
return error("Something failed");
}
// 返回never的函數(shù)必須存在無(wú)法達(dá)到的終點(diǎn)
function infiniteLoop(): never {
while (true) {
}
}
1.11、Object(非原始類型)
declare function create(o: object | null): void;
create({ prop: 0 }); // OK
create(null); // OK
create(42); // Error
create("string"); // Error
create(false); // Error
create(undefined); // Error
1.12、Null 和 Undefined
// Not much else we can assign to these variables!
let u: undefined = undefined;
let n: null = null;
1.13、類型斷言
將某一變量值轉(zhuǎn)化為其他類型的值
第一種
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
第二種
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
字符串字面量類型
let status: 'open' | 'closed' = 'open';
status = 'closed'; // status只能取 'open' 或 'closed'
注意
給予類型方式是區(qū)分大的,大小寫所表達(dá)的意思是不同的
不能將類型“String”分配給類型“string”。“string”是基礎(chǔ)類型,但“String”是包裝器對(duì)象。如可能首選使用“string”。
let s: string = 'aaaa';
let k: String = 'ssss';
s = new String('ssssssssss')//報(bào)錯(cuò)提示無(wú)法賦值
浙公網(wǎng)安備 33010602011771號(hào)