TypeScript支持两种方式来控制我们的作用域:
模块化
每个文件可以是一个独立的模块,支持ES Module,也支持CommonJS
math.ts:
export function add(num1: number, num2: number) {
return num1 + num2
}
export function sub(num1: number, num2: number) {
return num1 - num2
}
main.ts:
import { add, sub } from "./utils/math";
console.log(add(20, 30));
console.log(sub(20, 30));
命名空间
通过namespace来声明一个命名空间 (命名空间其实不太常用,了解即可。就是当同一个文件中的两个函数都想取相同名称的时候,就可以把这两个函数变量等 放置到不同的命名空间里去)
format.ts:
export namespace time {
export function format(time: string) {
return "2222-02-22"
}
export function foo() {
}
export let name: string = "abc"
}
export namespace price {
export function format(price: number) {
return "99.99"
}
}
main.ts:
import { time, price } from './utils/format'
console.log(time.format("11111111"))
console.log(price.format(123))