示例:
// 命名空间A
namespace A {
export const nameStr: string = '这是命名空间A';
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
eat() {
console.log(`${this.name} 吃狗粮`);
}
}
export function sayHello() {
console.log('hello A');
}
}
// 使用命名空间中的变量
console.log(A.nameStr); // 这是命名空间A
// 使用命名空间中的类
const dogA = new A.Dog('旺财');
// 使用命名空间中的方法
A.sayHello(); // hello A
使用export 导出命名空间A
file1.ts
// 命名空间A
export namespace A {
export const nameStr: string = '这是命名空间A';
interface Animal {
name: string;
eat(): void;
}
export class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
eat() {
console.log(`${this.name} 吃狗粮`);
}
}
export function sayHello() {
console.log('hello A');
}
}
使用import 导入 A
file2.ts
import { A } from './file1.ts';
const dogA = new A.Dog('旺财');
dogA.eat(); // 旺财 吃狗粮
命名空间和模块的区别: