全局量的类型声明
//全局变量声明
declare var aaa:number
//多种类型
declare var aaa:number|string
//常量(???)
declare const max:200
全局函数声明
/** id是用户的id,可以是number或者string */
decalre function getName(id:number|string):string
可以同时定义多套函数声明
declare function get(id: string | number): string
declare function get(name:string,age:number): string
参数可选时
declare function render(callback?:()=>void): string
定义类
declare class Person {
static maxAge: number //静态变量
static getMaxAge(): number //静态方法
constructor(name: string, age: number) //构造函数
getName(id: number): string
}
定义对象/命名空间
declare namespace OOO{
var aaa: number | string
function getName(id: number | string): string
class Person {
static maxAge: number //静态变量
static getMaxAge(): number //静态方法
constructor(name: string, age: number) //构造函数
getName(id: number): string //实例方法
}
}
复杂情况:多种类型并存,比如:既是对象又是函数
declare function $2(s:string): void
declare namespace $2{
let aaa:number
}
定义模块module,用于require和import
declare module "abcde" {
export let a: number
export function b(): number
export namespace c{
let cd: string
}
}
扩展其它类型,比如类,命名空间,模块等。比如:扩展Data类里,新增一个方法
interface Date {
format(f: string): string
}