1. 声明语法列表
// 声明全局变量declare let variable: number;declare let jQuery: (selector: string) => any//声明全局方法declare function add(lhs: number, rhs: number): number;//声明全局类declare class Foo {name: string;constructor(name: string);}//声明全局枚举类型declare enum Flag {ONE, TWO, THREE}//声明(含有子属性的)全局对象declare namespace ACM { }//接口和类型的全局声明interface Cat {name: string;}//导出默认变量export default variable;//src/JQuery.d.ts//命名空间declare namespace JQuery {interface AjaxSettings {method?: 'GET' | 'POST';data?: any;}function ajax(url: string, settings?: AjaxSettings): void;const version: number;class Event {blur(eventType: EventType): void;}enum EventType {CustomerClick,Default}}//使用与调用src/index.tsimport { JQuery } from "./declare";JQuery.ajax('/api/get/something') ;console.log(JQuery.version)const e = new JQuery.Event();e.blur(JQuery.EventType.CustomerClick);
在编写的格式上:function、class、interface可直接默认导出,其他变量需要先定义在默认导出。
declare enum Directions {Up,Down,Left,Right}export default Directions;
文件导入导出,在commonjs规范总,我们采取以下方法来导出
//整体导出module.exports = foo ;//单个导出exports.bar = bar ;
在TypeScript中有以下方法导入
// 方法一:const ... = require//整体导入const foo = require('foo') ;//单个导入const bar = require('foo').bar ;//方法二: import ... from//整体导入import * as foo from 'foo' ;//单个导入import {bar} from 'foo' ;//第三种导入方式,也是TypeScript官方推荐的方法 import ... require//整体导入import foo = require('foo') ;//单个导入import bar = foo.bar ;
