1. 声明语法列表

  1. // 声明全局变量
  2. declare let variable: number;
  3. declare let jQuery: (selector: string) => any
  4. //声明全局方法
  5. declare function add(lhs: number, rhs: number): number;
  6. //声明全局类
  7. declare class Foo {
  8. name: string;
  9. constructor(name: string);
  10. }
  11. //声明全局枚举类型
  12. declare enum Flag {
  13. ONE, TWO, THREE
  14. }
  15. //声明(含有子属性的)全局对象
  16. declare namespace ACM { }
  17. //接口和类型的全局声明
  18. interface Cat {
  19. name: string;
  20. }
  21. //导出默认变量
  22. export default variable;
  23. //src/JQuery.d.ts
  24. //命名空间
  25. declare namespace JQuery {
  26. interface AjaxSettings {
  27. method?: 'GET' | 'POST';
  28. data?: any;
  29. }
  30. function ajax(url: string, settings?: AjaxSettings): void;
  31. const version: number;
  32. class Event {
  33. blur(eventType: EventType): void;
  34. }
  35. enum EventType {
  36. CustomerClick,
  37. Default
  38. }
  39. }
  40. //使用与调用src/index.ts
  41. import { JQuery } from "./declare";
  42. JQuery.ajax('/api/get/something') ;
  43. console.log(JQuery.version)
  44. const e = new JQuery.Event();
  45. e.blur(JQuery.EventType.CustomerClick);

在编写的格式上:functionclassinterface可直接默认导出,其他变量需要先定义在默认导出。

  1. declare enum Directions {
  2. Up,
  3. Down,
  4. Left,
  5. Right
  6. }
  7. export default Directions;

文件导入导出,在commonjs规范总,我们采取以下方法来导出

  1. //整体导出
  2. module.exports = foo ;
  3. //单个导出
  4. exports.bar = bar ;

在TypeScript中有以下方法导入

  1. // 方法一:const ... = require
  2. //整体导入
  3. const foo = require('foo') ;
  4. //单个导入
  5. const bar = require('foo').bar ;
  6. //方法二: import ... from
  7. //整体导入
  8. import * as foo from 'foo' ;
  9. //单个导入
  10. import {bar} from 'foo' ;
  11. //第三种导入方式,也是TypeScript官方推荐的方法 import ... require
  12. //整体导入
  13. import foo = require('foo') ;
  14. //单个导入
  15. import bar = foo.bar ;