关于export的多种导出形式

require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出

1、文件中存在多个export的时候

//module.ts文件
export class Modulea{
    constructor(public params:string){
        console.log(params);
    }
}
export class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
export class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
//ceshi.vue文件




2、使用export default时

//module.ts文件
export default class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}




3、单个export且不使用default时,引用方式同第一种情况

//module.ts
class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
export {
    Modulea,Moduleb,Modulec
}

4、单个export使用default时

//module.ts文件
class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
export default {
    Modulea,Moduleb,Modulec
}
//ceshi.vue文件




5、使用module.exports时

//module.ts文件
class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
module.exports = {
    Modulea,Moduleb,Modulec
}
//ceshi.vue文件




6、exports

//module.ts文件
class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
exports.ex= {
    Modulea,Moduleb,Modulec
}
//ceshi.vue文件




7、exports第二种写法

//module.ts文件
class Modulea{
    constructor(public params:string){
        console.log(params);
    }
    newB(params:string){
        new Moduleb(params);
    }
    newC(params:string){
        new Modulec(params)
    }
}
class Moduleb{
    constructor(public params:string){
        console.log(params);
    }
}
class Modulec{
    constructor(public params:string){
        console.log(params);
    }
}
exports.Modulea = Modulea
exports.Moduleb = Moduleb
exports.Modulec = Modulec




 

你可能感兴趣的:(typescript,Vue)