日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ts基础类型

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ts基础类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本類型

let isFlag:boolean = false; //布爾 let num1:number = 1 //number let str1:string = "2" //string let var1:null = null // null let var2:undefined = undefined //undefined//一個變量可以賦值多種類型 let var3:boolean | number = 1 var3 = true

any 任何類型

我們不希望類型檢查器對這些值進行檢查而是直接讓它們通過編譯階段的檢查。可以使用 any類型來標記這些變量

let notSure:any = 4

數組

let arr1:number[]=[1,2,3] //方式一:元素類型[] let arr2:Array<string> = ['1','3'] //方式二:Array<元素類型> let ro:ReadonlyArray<number> = [1,2,3] //ReadonlyArray<元素類型> 可以確保數組創建后再也不能被修改 ro[0]=4 //報錯 ro.push(5); // 報錯 ro.length = 100; // 報錯 arr1 = ro ; //報錯 就算把整個ReadonlyArray賦值到一個普通數組也是不可以的arr1 = ro as number[] //可以用類型斷言重寫

引用對象

接口可以描述對象的shape,也能描述函數類型

interfance接口描述普通對象
  • 必含的: age: number;
  • 可選的:sex?:string;
  • 只讀的:readonly x:number;
  • 任意數量的其他屬性: [propName:string]:any; 如果any換成其他類型的必須是接口上其他數據描述的的集合,否則報錯。
    readonly和const區別:屬性只讀用readonly;變量只讀用const
//接口描述:必須包含age,name,x, 并且類型也要對應上;sex為可選屬性,x為只讀屬性 interface Person{age: number; //必含的name: string; //必含的sex?:string; //可選的readonly x:number; //必含的并且只讀的 }//不能加別的屬性,添加別的屬性會報錯 let person1:Person = {age: 10,name: 'aa',x:1 } person1.x = 2 //x是只讀屬性,報錯interface SquareConfig {color?: string;width?: number;[propName: string]: any; //任意數量的其他類型 此時any不能換為單獨的string,number,必須是string和number的集合。 } let obj1:SquareConfig = {color: 'red',aa:1,fun: function(){}, }

接口繼承:
接口也可以相互繼承。 這讓我們能夠從一個接口里復制成員到另一個接口里,可以更靈活地將接口分割到可重用的模塊里。

interface Shape {color: string; } interface PenStroke {penWidth: number; } //可繼承一個或多個接口 interface Square extends Shape,PenStroke{sideLength: number; }let square:Square = {color:'red',penWidth: 5,sideLength: 10 } let square1 = <Square>{color:'blue',penWidth: 8,sideLength: 12 }
interfance接口描述函數類型
//定義函數描述接口 interface SearchFunc {//參數列表和返回值類型的函數定義。參數列表里的每個參數都需要名字和類型。(source: string, subString: string): boolean; }let mySearch: SearchFunc; mySearch = function(source: string, subString: string) {let result = source.search(subString);return result > -1; } mySearch('1','2')// 對于函數類型的類型檢查來說,函數的參數名不需要與接口里定義的名字相匹配。但是類型要和接口定義的類型匹配。 mySearch = function(src: string, sub: string): boolean {let result = src.search(sub);return result > -1; }//必須包含age,name,并且類型也要對應上,可以有別的屬性 function printLabel1(person2: Person ) {console.log(person2.city); } let person2 = {age:10,name:'a',sex:'男',city:'上海'} printLabel1(myObj1);
interfance接口描述可索引的類型
1.數字下標索引arr[0]
//我們定義了StringArray接口,它具有索引簽名。 這個索引簽名表示了當用 number去索引StringArray時會得到string類型的返回值。 interface StringArray {[index: number]: string; //定義獲取下標為數字,每個值為string類型 }let arr:StringArray = ["Bob", "Fred"] console.log(arr[0])

索引簽名設置為只讀,防止了給索引賦值:

interface ReadonlyStringArray {readonly [index: number]: string; } let myArray: ReadonlyStringArray = ["Alice", "Bob"]; myArray[2] = "Mallory"; // error! 不能設置myArray[2] ,索引簽名是只讀的
2.字符串索引聲明了 obj.property和obj[“property”]兩種形式
interface NumberDictionary {[index: string]: number; //定義獲取下標為字符串,值為numberlength: number; // 可以,length是number類型//name: string // 錯誤,`name`的類型與索引類型返回值的類型不匹配 } let obj:NumberDictionary = {'length':2} console.log(obj.length,obj["length"])

元祖 Tuple

元組類型允許表示一個已知元素數量和類型的數組,各元素的類型不必相同。

let x:[string,number] = ['h',1];

枚舉

enum類型是對JavaScript標準數據類型的一個補充。使用枚舉類型可以為一組數值賦予友好的名字。

enum Color {Red,Green} let c:Color = Color.Red //0 console.log(Color)//{0: 'Red', 1: 'Green', Red: 0, Green: 1}//編譯為js文件就是: var Color; (function (Color) {Color[Color["Red"] = 0] = "Red";Color[Color["Green"] = 1] = "Green"; })(Color || (Color = {})); var c = Color.Red;

默認情況下,從0開始為元素編號。 你也可以手動的指定成員的數值。

enum Color {Red = 1, Green}//編譯為js文件就是: var Color; (function (Color) {Color[Color["Red"] = 1] = "Red";Color[Color["Green"] = 2] = "Green"; })(Color || (Color = {}));

或者,全部都采用手動賦值:

enum Color {Red = 1, Green =4}//編譯為js文件就是: var Color; (function (Color) {Color[Color["Red"] = 1] = "Red";Color[Color["Green"] = 4] = "Green"; })(Color || (Color = {}));

枚舉類型提供的一個便利是你可以由枚舉的值得到它的名字。 例如,我們知道數值為2,但是不確定它映射到Color里的哪個名字,我們可以查找相應的名字。

總結

以上是生活随笔為你收集整理的ts基础类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。