<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # TypeScript 類型 > 原文: [https://howtodoinjava.com/typescript/typescript-types/](https://howtodoinjava.com/typescript/typescript-types/) TypeScript 支持對基本類型(原始類型和對象類型)進行類型檢查。 它還支持泛型,裝飾器和 ES6 模塊類型。 重要的是要知道 TypeScript 中的類型系統設計為***可選***。 因此,所有 javascript 程序也都是 TypeScript 程序。 ```java Table of Contents Static types - Primitive Types - Object Types Generics Decorators ``` ## 1)靜態類型 在語言語義和類型系統的上下文中,**靜態類型通常表示“在編譯時”**或“不運行程序”,而**動態表示“在運行時”**。 在靜態類型語言中,變量,參數和對象成員具有編譯器在編譯時就知道的類型。 編譯器可以使用該信息執行類型檢查并優化編譯的代碼。 TypeScript 中的靜態類型可以分為兩個子類型: #### 1.1)基本類型 TypeScript 具有 5 種主要基本類型,即`number`,`string`,`boolean`,`void`和`any`。 `number` 用于定義類型為`number`的變量。 ```java let num: number = 123; num = 123.456; num = '123'; // Error ``` `string` 用于定義`string`類型的變量。 ```java let str: string = 'hello'; str = 'world'; str = 123; // Error ``` `boolean` 用于定義`boolean`類型的變量。 ```java let bool: boolean = false; bool = true; bool = 123; // Error ``` `void` 1. 用于函數返回類型以表示非返回函數。 ```java function warnUser(): void { alert("This is my warning message"); } ``` 2. 聲明 `void` 類型的變量沒有用,因為只能將 `undefined` 或 `null` 分配給它們。 ```java let tempVar: void = undefined; tempVar = null; tempVar = 123; //Error ``` `any` 當您想退出類型檢查并讓值通過編譯時檢查時,請使用`any`。 ```java let val: any = 'hello'; val = 123; // OK val = true; // OK ``` | #### 1.2)對象類型 TypeScript 支持以下對象類型。 數組 數組是**相同數據類型**的值的集合。 ```java var names:string[]; //declaration names = ["how","to","do","in","java"]; //initialization ``` 元組 元組就像數組; 但存儲“不同數據類型”的值。 就像數組一樣,它也是基于索引的數據結構。 ```java var items; //declaration items = ["how", 2, "do", 1 , true]; //initialization ``` 接口 接口定義派生成員類必須實現的屬性,方法和事件。 ```java interface ICalc { add (first: number, second: number): any; } let Calculator: ICalc = { add(first: number, second: number) { return first + second; } } ``` 類 類是用于創建對象的模板。 Typescript 從 ES6 獲得對類的支持。 ```java class Person { //field name:string; //constructor constructor(name:string) { this.name = name; } //function speakName():void { console.log("Name is : "+this.name) } } ``` 枚舉 與其他編程語言一樣,枚舉是由一組命名值組成的數據類型。 名稱通常是充當常量的標識符。 ES6 中引入了枚舉。 ```java enum Direction { Up, Down, Left, Right } let go: Direction; go = Direction.Up; ``` 函數 在 TypeScript 中,我們可以聲明僅在函數生命期內指向函數的變量。 ```java let fun: Function = () => console.log("Hello"); fun = 123; //Error ``` ## 2)泛型 泛型允許創建一個可以在多種類型而不是單個類型上工作的組件。 例如: ```java function throwBack<T>(arg: T): T { //Function return the parameter as it is return arg; } let outputStr = identity<string>("myString"); //OK let outputNum = identity<number>( 100 ); //OK ``` ## 3)裝飾器 一般而言,裝飾器是注解。 它們與`'@'`符號一起使用。 它允許我們修飾類和函數,類似于 java 中的注解和 python 中的裝飾器。 > 裝飾器是一項新功能,很可能會納入 JavaScript 的 ES7 版本。 但是該功能在 TypeScript(實驗性)中可用,因此我們已經可以使用它了。 #### 如何使用裝飾器 了解每個**裝飾器都是 javascript 函數**,這一點很重要。 要創建裝飾器,請創建如下函數: ```java function printable ( target ) { Object.defineProperty(target.prototype, 'print', {value: () => "Lokesh Gupta"}); } @printable class Person { } let admin = new Person(); console.log(admin.print()); // Lokesh Gupta ``` TypeScript 中的**類型系統就這些了**。 將我的問題放在評論部分。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看