ts之全局声明
declare var
声明全局变量declare function
声明全局方法declare class
声明全局类declare enum
声明全局枚举类型declare namespace
声明(含有子属性的)全局对象interface
和type
声明全局类型export
导出变量export namespace
导出(含有子属性的)对象export default
ES6 默认导出export =
commonjs 导出模块export as namespace
UMD 库声明全局变量declare global
扩展全局变量declare module
扩展模块/// <reference />
三斜线指令
在使用vue过程中发现有一些插件下载之后引用还是会报错,明明在哪个位置但是代码告诉你找不到。这个时候ts中的全局声明就是一个解决办法
声明文件通常单独放置于以 .d.ts 结尾的文件中。(只要 .ts
或 .d.ts
文件中有 import
或 export
,那么这个文件中的 declare
就会变成局部变量。)
declare var 也可以写作declare const 和 declare let,当然大部分的全局变量都是禁止修改的常量,所以大部分情况都应该使用 const
而不是 var
或 let
。
declare function 用来定义全局函数,比如:JQuery,支持函数重载,但是不能再声明的时候做具体实现。
declare class 定义全局类。只能定义类型。
declare enum 只定义类型不定义具体内容
declare namespace 里面可以声明子属性。
interface和type 暴露一些接口或者类型,供全局使用,可以放到namespace下(避免命名冲突,若放进namespace下需要带上父级名字)