当前位置: 首页 > Web前端 > HTML

Typescript基础知识整理

时间:2023-03-28 10:52:39 HTML

1.鍩烘湰绫诲瀷Never锛氭姏鍑哄紓甯镐笉杩斿洖鍊肩殑鍑芥暟琛ㄨ揪寮忦煂?/杩斿洖never鐨勫嚱鏁颁竴瀹氭湁涓€涓笉鍙揪鐨勭粓鐐筬unctionerror(message:string):never{thrownewError(message);}//InferenceThereturnvaluetypeisneverfunctionfail(){returnerror("Somethingfailed");}//杩斿洖never鐨勫嚱鏁颁竴瀹氭湁涓€涓笉鍙揪鐨勭粓鐐筬unctioninfiniteLoop():never{while(true){}}void:閫氬父鐢ㄦ潵琛ㄧず鍑芥暟娌℃湁杩斿洖鍊拣煂癴unctionwarnUser():void{console.log("Thisismywarningmessage");}鏅€氭暟缁勭被鍨嬪畾涔夛細number[]Array娉涘瀷绫诲瀷锛欰rrayTuple:琛ㄧず涓€涓凡鐭ュ厓绱犳暟閲忓拰绫诲瀷鐨勬暟缁勷煂?/澹版槑涓€涓厓缁則ypeletx:[string,number];//鍒濆鍖栧畠x=['hello',10];//OK//鍒濆鍖栭敊璇痻=[10,'hello'];//閿欒鏋氫妇绫诲瀷锛氭灇涓剧被鍨嬫彁渚涚殑涓€涓究鍒╂槸浣犲彲浠ヤ粠鏋氫妇鐨勫€间腑寰楀埌瀹冪殑鍚嶅瓧銆傛瘮濡傛垜浠煡閬撹繖涓€硷紝浣嗘槸涓嶇‘瀹氬畠鏄犲皠鍒板摢涓悕瀛楋紝鍙互鏌ユ壘瀵瑰簲鐨勫悕瀛楌煂?/榛樿鎯呭喌涓嬶紝鍏冪礌浠?寮€濮嬬紪鍙凤紱浣犱篃鍙互鎵嬪姩鎸囧畾鎴愬憳鏋氫妇鐨勫€糃olor{Red,Green,Blue}letc:Color=Color.Green;绫诲瀷鏂█锛氭病鏈夎繍琛屾椂褰卞搷锛屽彧鍦ㄧ紪璇戞椂璧蜂綔鐢ㄩ€氳繃绫诲瀷鏂█锛屼綘鍙互鍛婅瘔缂栬瘧鍣ㄦ垜鐭ラ亾褰撳墠绫诲瀷鏄粈涔堬紙TypeScript浼氬亣瀹氫綘宸茬粡鎵ц浜嗗繀瑕佺殑妫€鏌ワ級涓や釜琛ㄨ揪寮忥細鈥滃皷鎷彿鈥濊娉曡someValue:any="杩欐槸涓€涓瓧绗︿覆";璁﹕trLength:number=(someValue).length;浣滀负璇硶璁╂垜浠琽meValue:any="thisisastring";letstrLength:number=(someValueasstring).length;鍏朵粬甯歌鐨勫熀鏈被鍨嬫湁锛歰bject锛氶潪鍘熷绫诲瀷any锛氫换鎰忕被鍨媌oolean锛氬竷灏斿€糿umber锛氭暟瀛梥tring锛氬瓧绗tring绫诲瀷Null鍜孶ndefined2.Interface鎺ュ彛鏄浣曞伐浣滅殑锛氱被鍨嬫鏌ュ櫒浼氱湅瀵规帴鍙o紝缂栬瘧鍣ㄥ彧浼氭鏌ラ偅浜涢渶瑕佺殑灞炴€ф槸鍚﹀瓨鍦紝浠ュ強瀹冧滑鐨勭被鍨嬫槸鍚﹀尮閰嶅彧璇诲睘鎬э細鍙湁鍦ㄥ璞″垰鍒氬垱寤烘椂淇敼瀹冪殑鍊兼椂锛堝垵濮嬪寲瀵硅薄鍊煎悗鐨勮祴鍊间細瀵艰嚧閿欒锛夋帴鍙g偣{readonlyx:number;readonlyy:number;}TypeScript鏈塕eadonlyArray绫诲瀷锛屼繚璇佹暟缁勫垱寤哄悗涓嶈兘淇敼**鍙灞炴€т笉鑳借祴鍊肩粰鍏朵粬绫诲瀷馃尠leta:number[]=[1,2,3,4];璁﹔o:ReadonlyArray=a;a=ro;//閿欒锛?/鍙敤鐨勭被鍨嬫柇瑷€a=roasnumber[];Functiontype://DefineinterfaceSearchFunc{(source:string,subString:string):boolean;}鍑芥暟鐨勫弬鏁颁細涓€涓€妫€鏌ワ紝瑕佹眰瀵瑰簲浣嶇疆鐨勫弬鏁扮被鍨嬪吋瀹广€傚浜庡嚱鏁颁负浜嗙被鍨嬫鏌ワ紝鍑芥暟鐨勫弬鏁板悕绉颁笉闇€瑕佸拰鎺ュ彛涓畾涔夌殑鍚嶇О鍖归厤//浣跨敤letmySearch:SearchFunc;mySearch=function(src:string,sub:string):boolean{letresult=src.search锛堝瓙锛夛紱returnresult>-1;}Indextype:None3.娉涘瀷浣跨敤绫诲瀷鍙橀噺T锛堟硾鍨嬪弬鏁板悕鍙互浣跨敤浠绘剰鍚嶇О锛夋潵琛ㄧず娉涘瀷//T甯姪鎴戜滑鎹曡幏鐢ㄦ埛浼犲叆鐨勭被鍨嬪苟杩斿洖绫诲瀷鍑芥暟identity(arg:T):T{returnarg;}鏈変袱绉嶇敤娉曪細浼犲叆鎵€鏈夊弬鏁帮紝鍖呮嫭绫诲瀷鍙傛暟//鏄惧紡鎸囧畾T鏄瓧绗︿覆绫诲瀷锛屽苟灏嗗叾浣滀负鍙傛暟浼犻€掔粰鍑芥暟锛屼娇鐢?>letoutput=identity("myString");//typeofoutputwillbe'string'utilizestypeinference--鍗崇紪璇戝櫒浼氭牴鎹紶鍏ョ殑鍙傛暟鑷姩甯垜浠垽鏂璗鐨勭被鍨嬨€?/涓嶈浣跨敤灏栨嫭鍙凤紙<>锛夋樉寮忎紶閫掑湪绫诲瀷涓紝缂栬瘧鍣ㄥ彲浠ユ鏌yString鐨勫€硷紝鐒跺悗灏員璁剧疆涓哄叾绫诲瀷letoutput=identity("myString");//杈撳嚭鐨勭被鍨嬩細鏄?string'娉ㄦ剰锛氬鏋滅紪璇戝櫒娌℃湁鑷姩鎺ㄥ绫诲瀷锛屽彧鑳芥樉寮忎紶鍏绫诲瀷鐨勬硾鍨嬪彉閲忥細鍦ㄥ嚱鏁颁綋涓繀椤绘纭娇鐢ㄨ繖涓硾鍨嬪彉閲廸unctionloggingIdentity(arg:T):T{console.log(arg.length);//閿欒锛歍娌℃湁.lengthreturnarg;}//GenericconstraintsfunctionloggingIdentity(arg:T[]):T[]{//T[]鍙互琛ㄧず涓篈rrayconsole.log(arg.length);//鏁扮粍鏈変竴涓?length锛屾墍浠ヤ笉鍐嶆湁閿欒returnarg;}瀹氫箟閫氱敤鎺ュ彛锛歩nterfaceGenericIdentityFn{(arg:T):T;}functionidentity(arg:T):T{returnarg;}letmyIdentity:GenericIdentityFn=identity;//娓呴櫎娉涘瀷绫诲瀷letmyIdentity:GenericIdentityFn=identity;閫氱敤绫伙細绫籊enericNumber{zeroValue:T;娣诲姞锛氾紙x锛歍锛寉锛歍锛?>T;}letmyGenericNumber=newGenericNumber();myGenericNumber.zeroValue=0;myGenericNumber.add=function(x,y){returnx+y;};Genericconstraints锛氶渶瑕佸垪鍑哄浜嶵鐨凜onstraint闇€姹傦紝瀹氫箟涓€涓帴鍙f潵鎻忚堪constraints//鐜板湪鎴戜滑鐭ラ亾瀹冩湁涓€涓?length灞炴€э紝鎵€浠ヤ笉鍐嶆湁閿欒returnarg;}