技术文档中心
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
首页
React
Vue
TypeScript
Kotlin
React Native
Electron
Android
  • 基础入门

    • TypeScript 学习指南
    • 基础类型
    • 函数
    • 接口
    • 类
  • 进阶内容

    • 泛型
    • 高级类型
    • 工具类型
    • 装饰器
    • 模块
  • 实战应用

    • 配置文件
    • 实战应用

模块

导出

导出声明

// user.ts
export interface User {
  name: string;
  age: number;
}

export function createUser(name: string, age: number): User {
  return { name, age };
}

export class UserManager {
  users: User[] = [];
}

导出语句

interface User {
  name: string;
  age: number;
}

function createUser(name: string, age: number): User {
  return { name, age };
}

export { User, createUser };

重命名导出

function createUser(name: string, age: number) {
  return { name, age };
}

export { createUser as create };

默认导出

// user.ts
export default class User {
  name: string;
  age: number;
}

// 或
class User {
  name: string;
  age: number;
}

export default User;

导入

导入声明

import { User, createUser } from './user';

let user: User = createUser('John', 25);

重命名导入

import { User as UserType } from './user';

let user: UserType = { name: 'John', age: 25 };

导入整个模块

import * as UserModule from './user';

let user: UserModule.User = UserModule.createUser('John', 25);

导入默认导出

import User from './user';

let user = new User();

混合导入

import User, { createUser } from './user';

重新导出

// models/index.ts
export { User } from './user';
export { Product } from './product';
export { Order } from './order';

// 使用
import { User, Product, Order } from './models';

重新导出并重命名

export { User as UserModel } from './user';

重新导出全部

export * from './user';
export * from './product';

动态导入

async function loadUser() {
  const userModule = await import('./user');
  const user = userModule.createUser('John', 25);
  return user;
}

// 或
import('./user').then(module => {
  const user = module.createUser('John', 25);
});

命名空间

namespace Validation {
  export interface StringValidator {
    isValid(s: string): boolean;
  }

  export class EmailValidator implements StringValidator {
    isValid(s: string): boolean {
      return /\S+@\S+\.\S+/.test(s);
    }
  }
}

let validator = new Validation.EmailValidator();

模块解析

相对导入

import { User } from './user';
import { Product } from '../models/product';

非相对导入

import * as React from 'react';
import { Component } from '@angular/core';

声明文件

.d.ts 文件

// types.d.ts
declare module 'my-library' {
  export function doSomething(): void;
}

// 使用
import { doSomething } from 'my-library';

全局声明

// global.d.ts
declare global {
  interface Window {
    myCustomProperty: string;
  }
}

export {};

模块增强

// 扩展已有模块
import { Observable } from 'rxjs';

declare module 'rxjs' {
  interface Observable<T> {
    myCustomMethod(): Observable<T>;
  }
}
最近更新: 2026/2/6 15:39
Contributors: hailong
Prev
装饰器