模块导出
模块导出 通过 export
/ export default
进行导出文件中数据和方法。
// util.ts
export const token = "asdasjkh3242341asd"
export function getBasicData(){
console.log("获取基础数据")
}
export type receiveData = {
code:Number,
data:Object,
}
export type axiosParams = {
methods: String,
url:String,
params: any
}
export default {
baseInfo:{
id:22,
name:"基础信息"
}
}
复制代码
模块导入
export default
这种方式导出的数据,使用模块时 通过以下方式导入使用
import util from "./util"
util.token
util.getBasicData()
复制代码
export
这种方式导出的数据,使用模块时 通过以下方式导入使用
import {token,getBasicData } from "./util"
token
getBasicData
复制代码
as 别名
当页面中有和导入的数据重名时,通过 as 定义一个别名 使用。
import util,{token,getBasicData as getData} from "./util"
getData()
复制代码
* as name
还可以将模块中所有对象 放入一个命名空间,然后调用使用
import * as app from "./util"
console.log(app.token)
app.getBasicData()
复制代码
TypeScript 导入玩法
当导入 type 时,它有 3 种导入方法,使用哪种都可以,看自己喜好。ta 模块文件
export type ReceiveData = {
code:Number,
data:Object,
}
export type AxiosParams = {
methods: String,
url:String,
params: any
}
export interface GPT {
say:Function,
name:String,
draw:Function
}
export interface AUTOGPt extends GPT{
auto:Function
}
export interface AI extends GPT {}
复制代码
第一种
通过 type { type1,type2 }
导入使用,这种导入方式可以很清晰的知道导入了哪些 type
import type {ReceiveData,AxiosParams} from "./util"
复制代码
第二种
直接 通过 import {} from '模块'
导入,缺点是不好分辨哪个是 type
import {ReceiveData,AxiosParams} from "./util"
复制代码
第三种
TypeScript 4.5 还允许单个导入以 type 为前缀,以指示导入的引用是类型:
import {type ReceiveData, type AxiosParams} from "./util"
复制代码
体验一下模块的乐趣
//模块 util.ts 文件
export type ReceiveData = {
code:Number,
data:Object,
}
export type AxiosParams = {
methods: String,
url:String,
params: any
}
export interface GPT {
say:Function,
name:String,
draw:Function
}
export interface AUTOGPt extends GPT{
auto:Function
}
export interface AI extends AUTOGPt {}
复制代码
import {type ReceiveData, type AxiosParams} from "./util"
import * as app from "./util"
const axiosParams: AxiosParams = {
methods:"GET",
url: "api/getAllData",
params:{
limit:10,
page:2
}
}
const aiX : app.AI = {
say:function(){
console.log("我具有 问答功能")
},
name:"我是AI 超神",
draw:function(){
console.log("我具有 绘画功能")
},
auto:function(){
console.log("我具有 自动工作功能")
}
}
复制代码
上面代码中,第一个文件是我们定义的模块,定义了 两个 type
三个interface
, 在第二个文件中,我们导入模块,使用类型标注,这样可以很好的得知我们的数据结构是什么。
Common.js 导入导出
CommonJS 是 npm 上大多数模块的格式。
导出
通过 module.exports 导出模块数据
const loginStatus = false
function getUserInfo(){
console.log("获取用户基本信息")
}
module.exports = {
loginStatus,
getUserInfo
}
复制代码
导入
通过 require(模块文件位置)
导入
//第一种导入方式
const basic = require('./basic')
//第二种导入方式
const {loginStatus,getUserInfo} = require('./basic')
console.log(basic.loginStatus)
复制代码
TypeScript 模块解析原理
:::successhttps://www.typescriptlang.org/docs/handbook/module-resolution.html:::
评论