<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] >[success] # Interface- 接口初探 在之前我們學習了如何定義 **原始數據類型** 和 定義 **數組類型** ,本章將學習如何定義 **object 類型** ,**Interface** 可以定義 **object 類型數據** ,**Interface** 也稱之為 **Duck Typing(鴨子類型)**, **Interface** 非常靈活, **可以描述編程語言的各種類型** ,**Interface** 不存在 **javascript** 的概念,所以 **ts 在編譯以后,Interface** 是不會被轉換到 **js** 文件中的,所以 **它(Interface)只能用來做類型的靜態檢查** 。 1. **接口用法** **basic-types.ts** ~~~ // 定義接口 interface Iperson { name: string; age: number; } // 定義變量 let viking: Iperson = { name: 'viking', age: 18 } ~~~ 有的 **編程語言建議?interface?名稱定義時,第 1 個字母用大寫?I** ?, 意思是告訴大家這是一個?**interface** ,上面的意思是 **定義一個接口,然后 viking 這個變量用定義好的 Iperson 這個接口的規則,來約束這個變量,需要注意:如果?viking?變量中少屬性或多屬性會報錯,給變量賦值時形狀保持與接口一致** 這種情況該怎么辦呢,可以使用**可選屬性** 2. **可選屬性** **可選屬性**: **該屬性可以是不存在的** ,像下面這樣寫 **age** 就是可選可不選的。 **basic-types.ts** ~~~ // 定義一個接口 interface Iperson { name: string; age?: number; } // 定義一個變量 let viking: Iperson = { name: 'viking', // age: 20 } ~~~ 3. **只讀屬性** 有時候我們希望 **對象中的一些屬性只能被賦值,后期只能讀取,不能修改** ,我們可以用 **readonly** , 這樣寫: **basic-types.ts** ~~~ // 定義一個接口 interface Iperson { readonly id:number; name: string; age?: number; } // 定義一個變量 let viking: Iperson = { id: 1, name: 'viking', age: 20 } // 修改 id 就會報錯 viking.id = 9527 ~~~ **readonly** 與 **const關鍵字** 有點相似,它們之間的區別是 **readonly 是用在屬性上的** ,而 **const 是用在變量上的**。 >[success] ## Interface定義對象屬性與值的類型 寫法如下: ~~~ // 定義接口 interface Dict { [key:string]: string } // 使用時 const Dict:Dict = { name: '小明' } ~~~
                  <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>

                              哎呀哎呀视频在线观看