国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

TypeScript深度剖析:TypeScript 中命名空間與模塊的理解?區(qū)別?

這篇具有很好參考價值的文章主要介紹了TypeScript深度剖析:TypeScript 中命名空間與模塊的理解?區(qū)別?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

typescript命名空間和模塊,typerscript,typescript,javascript,前端

一、模塊

TypeScript?與 ECMAScript?2015 一樣,任何包含頂級?import?或者?export?的文件都被當成一個模塊

相反地,如果一個文件不帶有頂級的import或者export聲明,那么它的內(nèi)容被視為全局可見的

例如我們在在一個?TypeScript?工程下建立一個文件?1.ts,聲明一個變量a,如下:

const a = 1

然后在另一個文件同樣聲明一個變量a,這時候會出現(xiàn)錯誤信息

typescript命名空間和模塊,typerscript,typescript,javascript,前端

提示重復聲明a變量,但是所處的空間是全局的

如果需要解決這個問題,則通過import或者export引入模塊系統(tǒng)即可,如下:

const a = 10;

export default a

typescript中,export關(guān)鍵字可以導出變量或者類型,用法與es6模塊一致,如下:

export const a = 1
export type Person = {
    name: String
}

通過import?引入模塊,如下:

import { a, Person } from './export';

二、命名空間

命名空間一個最明確的目的就是解決重名問題

命名空間定義了標識符的可見范圍,一個標識符可在多個名字空間中定義,它在不同名字空間中的含義是互不相干的

這樣,在一個新的名字空間中可定義任何標識符,它們不會與任何已有的標識符發(fā)生沖突,因為已有的定義都處于其他名字空間中

TypeScript?中命名空間使用?namespace?來定義,語法格式如下:

namespace SomeNameSpaceName {
   export interface ISomeInterfaceName {      }
   export class SomeClassName {      }
}

以上定義了一個命名空間?SomeNameSpaceName,如果我們需要在外部可以調(diào)用?SomeNameSpaceName?中的類和接口,則需要在類和接口添加?export?關(guān)鍵字

使用方式如下:

SomeNameSpaceName.SomeClassName

命名空間本質(zhì)上是一個對象,作用是將一系列相關(guān)的全局變量組織到一個對象的屬性,如下:

namespace Letter {
  export let a = 1;
  export let b = 2;
  export let c = 3;
  // ...
  export let z = 26;
}

編譯成js如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-725627.html

var Letter;
(function (Letter) {
    Letter.a = 1;
    Letter.b = 2;
    Letter.c = 3;
    // ...
    Letter.z = 26;
})(Letter || (Letter = {}));

三、區(qū)別

  • 命名空間是位于全局命名空間下的一個普通的帶有名字的 JavaScript 對象,使用起來十分容易。但就像其它的全局命名空間污染一樣,它很難去識別組件之間的依賴關(guān)系,尤其是在大型的應用中
  • 像命名空間一樣,模塊可以包含代碼和聲明。 不同的是模塊可以聲明它的依賴
  • 在正常的TS項目開發(fā)過程中并不建議用命名空間,但通常在通過 d.ts 文件標記 js 庫類型的時候使用命名空間,主要作用是給編譯器編寫代碼的時候參考使用

到了這里,關(guān)于TypeScript深度剖析:TypeScript 中命名空間與模塊的理解?區(qū)別?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 你真的理解qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    你真的理解qsort函數(shù)嗎?帶你深度剖析qsort函數(shù)

    魔王的介紹:??????一名雙非本科大一小白。 魔王的目標:??努力趕上周圍卷王的腳步。 魔王的主頁:??大魔王不哭 我們初識C語言時,會做過讓一個整型數(shù)組按照從小到大來排序的問題,我們使用的是冒泡排序法,但是如果我們想要比較其他類型怎么辦呢,顯然我們

    2023年04月24日
    瀏覽(20)
  • 【C++從入門到放棄】stack和queue的深度剖析及空間適配器的介紹

    【C++從入門到放棄】stack和queue的深度剖析及空間適配器的介紹

    ?????作者: @情話0.0 ??專欄:《C++從入門到放棄》 ??個人簡介:一名雙非編程菜鳥,在這里分享自己的編程學習筆記,歡迎大家的指正與點贊,謝謝! ??此篇博客將談及到的stack、queue和priority_queue都不是STL的標準容器,而是一種空間適配器。它是通過對一種容器進行

    2024年02月11日
    瀏覽(19)
  • 深入理解 TypeScript 的 type 以及 type 與 interface 和 class 的區(qū)別

    TypeScript 是一種強類型的 JavaScript 超集,它為 JavaScript 提供了靜態(tài)類型系統(tǒng)。在 TypeScript 中,我們可以使用 type 、 interface 和 class 為數(shù)據(jù)定義類型。本文將重點介紹 type 的作用以及它與 interface 和 class 的區(qū)別。 type type 是 TypeScript 中用于定義類型別名、聯(lián)合類型、交叉類型等復

    2024年02月03日
    瀏覽(16)
  • 【C語言深度剖析——第三節(jié)(關(guān)鍵字3)】《C語言深度解剖》+蛋哥分析+個人理解

    【C語言深度剖析——第三節(jié)(關(guān)鍵字3)】《C語言深度解剖》+蛋哥分析+個人理解

    本文由@睡覺待開機原創(chuàng),未經(jīng)允許不得轉(zhuǎn)載。 本內(nèi)容在csdn網(wǎng)站首發(fā) 歡迎各位點贊—評論—收藏 如果存在不足之處請評論留言,共同進步! 前言: 本期我們繼續(xù)探討關(guān)于C深度解剖這本書相關(guān)內(nèi)容,繼上一篇博客,本篇博客來圍繞“數(shù)據(jù)類型”、“原反補”有關(guān)話題進行探

    2024年01月21日
    瀏覽(20)
  • 【C語言深度剖析——第四節(jié)(關(guān)鍵字4)】《C語言深度解剖》+蛋哥分析+個人理解

    【C語言深度剖析——第四節(jié)(關(guān)鍵字4)】《C語言深度解剖》+蛋哥分析+個人理解

    追求本質(zhì),不斷進步 本文由@睡覺待開機原創(chuàng),轉(zhuǎn)載請注明出處。 本內(nèi)容在csdn網(wǎng)站首發(fā) 歡迎各位點贊—評論—收藏 如果存在不足之處請評論留言,共同進步! 前言: 本節(jié)博客繼續(xù)前篇內(nèi)容進行續(xù)寫,我們著重探求有符號與無符號數(shù)的問題,探求 整形在內(nèi)存中的存儲 這一課

    2024年01月20日
    瀏覽(22)
  • 藍牙透傳模塊芯片的BLE和SPP有什么區(qū)別?如何理解

    藍牙透傳模塊芯片的BLE和SPP有什么區(qū)別?如何理解

    ? 藍牙透傳芯片的BLE和SPP有什么區(qū)別?如何理解呢? 首先要明確幾個,藍牙芯片,藍牙透傳,藍牙BLE,以及藍牙SPP 第一:藍牙芯片的概念可以參見一下網(wǎng)上的說明: 藍牙芯片,一般都是屬于SOC級別的芯片,區(qū)別于傳統(tǒng)的MCU以及射頻芯片,可以簡單的理解為單顆芯片實

    2024年02月10日
    瀏覽(28)
  • 【C++】命名空間 namespace 與 標準流 iostream ( 命名空間概念簡介 | 命名空間定義 | 命名空間使用 | iostream 中的命名空間分析 )

    【C++】命名空間 namespace 與 標準流 iostream ( 命名空間概念簡介 | 命名空間定義 | 命名空間使用 | iostream 中的命名空間分析 )

    命名空間 namespace 又稱為 名字空間 , 名稱空間 , 名域 , 作用域 , 是 C++ 語言 對 C 語言 的擴展 之一 ; C++ 中的 命名空間 namespace 指的是 標識符 的 可見范圍 , C++ 標準庫中的 所有 標識符 , 都定義在 std 命名空間中 ; 命名空間 英文名稱是 \\\" namespace \\\" , name 是 名字 , 名稱 的意思 ,

    2024年02月12日
    瀏覽(29)
  • 【深度學習筆記】徹底理解torch中的tensor與numpy中array區(qū)別及用法

    剛接觸深度學習的同學,很多開源項目代碼中, 張量tensor 與 數(shù)組array 都有使用,不清楚兩者有什么區(qū)別,以及怎么使用,如何相互轉(zhuǎn)換等。博主起初也有類似的疑惑,經(jīng)過查閱資料以及實踐,逐漸有了深入了解,本文將記錄并分享自己對兩者的理解,可供參考。 提示:以下

    2023年04月08日
    瀏覽(81)
  • 【深度學習】神經(jīng)網(wǎng)絡中 Batch 和 Epoch 之間的區(qū)別是什么?我們該如何理解?

    隨機梯度下降(Stochastic Gradient Descent,SGD)是一種優(yōu)化算法,用于在機器學習和深度學習中更新模型參數(shù),以最小化損失函數(shù)。與傳統(tǒng)的梯度下降算法不同,SGD在每次參數(shù)更新時只使用一個樣本(或一小批樣本),而不是使用整個訓練數(shù)據(jù)集。這使得SGD具有更快的收斂速度,

    2024年02月10日
    瀏覽(24)
  • [Unity命名空間教程]介紹Unity新自帶的命名空間UnityEngine.Pool

    [Unity命名空間教程]介紹Unity新自帶的命名空間UnityEngine.Pool

    ? 大家都知道在一些游戲中常常要創(chuàng)建大量的游戲?qū)ο螅绻@些對象長期占用一些內(nèi)存而沒有觸發(fā)垃圾回收機制(以下簡稱GC)或者過于頻繁的觸發(fā)GC就會導致游戲的幀數(shù)暴跌,在移動設備直接造成卡死的現(xiàn)象,那引用對象池的概念,能讓這些游戲?qū)ο笤趧傞_始的時候就被初

    2023年04月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包