ts模塊

TS中的import

JavaScript 中有多種 export 的方式,而 TypeScript 中針對這種情況做了多種 import 語法。

// commonjs 模塊
import * as xx from 'xx'

// es6 模塊
import xx from 'xx'

// commonjs 模塊,類型聲明為 export = xx
import xx = require('xx')

// 沒有類型聲明,默認導入 any 類型
const xx = require('xx')

  • import * as xx from 'xx' 的語法來一般都是用來導入使用 module.exports 導出的模塊。

import * as path from 'path'

  • import xx from 'xx' 默認情況下,import xx from 'xx' 的語法只適用于 ECMAScript 6 的 export default 導出

  • import xx = require('xx') import xx = require('xx') 是用來導入 commonjs 模塊的庫,特殊的地方在于這個庫的類型聲明是 export = xx 這種方式導出的

  • const xx = require('xx') 當一個模塊沒有類型聲明文件的時候,可以使用 commonjs 原始的 require() 方式來導入模塊,這樣會默認該模塊為 any。

聲明文件

如果ts模塊不存在聲明文件,那么只能用最后一種方式進行引入。
否則需要建立聲明文件。

如果聲明文件是通過 tsc 自動生成的,那么無需做任何其他配置,只需要把編譯好的文件也發(fā)布到 npm 上,使用方就可以獲取到類型提示了。

如果是手動寫的聲明文件,那么需要滿足以下條件之一,才能被正確的識別:

  • 給 package.json 中的 types 或 typings 字段指定一個類型聲明文件地址
  • 在項目根目錄下,編寫一個 index.d.ts 文件
  • 針對入口文件(package.json 中的 main 字段指定的入口文件),編寫一個同名不同后綴的 .d.ts 文件
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容