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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 面向對象特性 * **類** 類事TypeScript的核心,使用TypeScript開發時,大部分代碼都是些在類里面的。 類的定義,構造函數,以及類的繼承 類的定義 ![](https://img.kancloud.cn/93/9b/939bd5663cdc25bbaeee06384a6cfa32_844x339.png) 類的構造函數 constructor ![](https://img.kancloud.cn/02/17/0217bcd5cced20d128b4f320f7c5a3fe_418x333.png) 實例化的時候 必須聲明規則 ![](https://img.kancloud.cn/bb/81/bb815f479b0c641e575242a3af5fadda_436x332.png) 等同于 ![](https://img.kancloud.cn/37/fa/37fa549c2e1543e024a57e92b578278f_824x271.png) >注:在構造函數 constrector 中 參數聲明需要帶public 如果不帶public 則此類中 沒有聲明此屬性 類中就無法調用name ***** extends 繼承另一個類 ![](https://img.kancloud.cn/64/4e/644e7e0994488096755b6344df08315a_371x285.png) ![](https://img.kancloud.cn/69/6b/696bfb4b497d1124454f880b3de13bc8_400x181.png) 子類的構造函數必須調用父類 super 用于實現子類調用父類的構造函數 ![](https://img.kancloud.cn/a9/f5/a9f5cdcfdaa8bf767e4a634d8d0ac46f_380x296.png) ~~~ class Person{ name: string; age: number; constructor(public food:string = 'pig'){ } eat(){ console.log(`人要吃${this.food}`); } } class Gooder extends Person{ constructor(public job:string ,public food = '肉肉'){ super(food); } say(){ console.log(`ta說要好好干活,我是做${this.job}工作的`); }; sleep = () => { super.eat(); this.kiss(); console.log('好了 去睡覺'); }; kiss = () => { console.log('睡覺前,需要親吻家人'); } } var a = new Person(); a.eat(); var b = new Gooder('教師'); b.say(); b.sleep(); ~~~ > 注:在編寫代碼時,我在類中使用了箭頭函數的寫法,發現在繼承類調用時,不可以使用,故此我發現,箭頭函數的權限為private ***** * **泛型** 參數化的類型,一般用來限制集合的內容 ~~~ var worker: Array<Person> = []; worker[0] = new Person(); worker[1] = new Gooder('宇航員'); console.log(worker); ~~~ 一下截圖為 上面實例代碼運行結果 ![](https://img.kancloud.cn/8f/ed/8fed21f78a05eafd6c7ccc22ca50672a_592x129.png) ***** * **接口** 用來建立某種代碼約定,使得其他開發者在調用某一個方法或者創建新的類時必須遵守接口所定義的代碼約定 接口聲明屬性 ~~~ interface Iphone { size: string; colour: string; } class X { constructor(public config: Iphone) { } } var phone = new X( { size: 'X', colour: 'golden' } ); ~~~ 接口聲明屬性和方法 使用implements 基礎接口類 ~~~ interface Ip { size: string; site(): void; } class XX implements Ip{ size: string; constructor(param: string){ this.size = param; } site(){ console.log('over'); } } ~~~
                  <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>

                              哎呀哎呀视频在线观看