Typescript 声明文件中的 declare global 和 普通 declare 有什么区别 ?

问题描述

  1. 普通 declare

    declare  function hello1(s: string):void;
  2. declare global

    declare global {
        function  hello2(s: string):void
    }

在声明文件 xxx.d.ts 中声明上述其中任何一个,都可以在全局之中检测并访问到 hello1/hello2,
那么这两种声明方式的区别是什么?
主要是 declare global 到底应该怎么用? 我在官方文档都没有找到这种用法

阅读 39.3k
4 个回答

在 d.ts 声明文件中,任何的 declare 默认就是 global 的了,所以你在 d.ts 文件中是不能出现 declare global 的。只有在模块文件中的定义,如果想要全局就使用 declare global

xxx.d.ts

xxx.ts

你的文件名是不是一样的, 换个不一样的。比如

xxx.d.ts

yyy.ts

Global augmentations have the same behavior and limits as module augmentations.
全局的 declare 和 declare 一样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏