# 申明文件-ambients

本章详细讲解申明文件 declare 关键字的相关语法。

# 环境申明类型

典型的申明类型包含如下几种。

  • 变量申明
  • 函数申明
  • 类申明
  • 枚举申明
  • 命名空间申明

# 变量

# 全局变量定义

假设代码中有如下定义

if(__ENV__ === 'dev') {
   console.log('dev test')
}

为了避免 Typescript 找不到对应变量可使用

type ENV = 'dev' | 'prod' | 'test'
declare var __ENV__:ENV;

# 函数申明

# 全局函数定义

全局使用了如下函数

greetGlobal("hello, world");

同样采用 declare 语法申明函数类型。

declare function greetGlobal(greeting: string): void;

# 类申明

# 命名空间申明

假设定义了某个全局对象 myLib 包含如下方法。

let result = myLib.makeGreeting("hello, world");
console.log("The computed greeting is:" + result);

let count = myLib.numberOfGreetings;

此时 Typesript 会提示 Cannot find name 'myLib'. 的类型错误。

通过家目录定义 myLib.d.ts 解决全局对象引用报错问题

declare namespace myLib {
   function makeGreeting(s: string): string;
   let numberOfGreetings: number;
 }

# 总结

# 延伸阅读