命名空间
使用命名空间来将某些数据按区域划分
1.定义语法
命名空间的注意项
- 通过
namespace关键字定义命名空间 - 命名空间内的数据只能在当前命名空间内使用,别处不能直接使用
ts
namespace GradeOne {
const name: string = '九年级'
const peopleNum: number = 60
const askQuestion = (name: string): void => {
console.log(`${name}同学回答问题`)
}
askQuestion('ikun') //ikun同学回答问题
}
namespace GradeTow {
const name: string = '大一'
const peopleNum: number = 90
const askQuestion = (name: string): void => {
console.log(`${name}同学回答问题`)
}
askQuestion('夏至') //夏至同学回答问题
}2.使用命名空间
若想在别处使用命名空间内的数据,前提是要将命名空间的数据先导出,使用export导出数据
使用时通过.操作符访问命名空间内数据
ts
namespace GradeOne {
export const name: string = '九年级'
}
console.log(GradeOne.name)可以使用import导入需要使用的数据
ts
namespace GradeOne {
export const name: string = '九年级'
export const peopleNum: number = 60
export const askQuestion = (name: string): void => {
console.log(`${name}同学回答问题`)
},
}
import askQuestion = GradeOne.askQuestion
askQuestion('ikun')也可以解构赋值
ts
namespace GradeOne {
export const gradeName: string = '九年级'
export const peopleNum: number = 60
export const askQuestion = (name: string): void => {
console.log(`${name}同学回答问题`)
}
}
const { gradeName,peopleNum, askQuestion } = GradeOne
console.log(peopleNum)3.命名空间嵌套
命名空间可以嵌套,使用也是通过.操作符一层一层访问,注意导出数据
ts
namespace Space1 {
export namespace Space2 {
export namespace Space3 {
export const namn: string = 'ikun'
}
}
}
console.log(Space1.Space2.Space3.namn)4.命名空间合并
多个同名的命名空间会自动合并
ts
namespace Space1 {
export const name: string = 'ikun'
}
namespace Space1 {
export const age: number = 18
}
console.log(Space1.name) // ikun
console.log(Space1.age) // 18不想写了,ts的命名空间狗屎一坨,狗都不用
