【问题标题】:What are ambient declarations什么是环境声明
【发布时间】:2017-10-09 01:08:40
【问题描述】:

我看到很多使用提到ambient declarations 的文章。例如this article。这些是什么?有人可以提供一个例子吗?环境声明是在现有打字稿文件之外创建但在这些文件中使用的类型的声明吗?所有声明都环境吗?

据我了解,ambient declarations 不会生成任何 JavaScript 代码,而是使用 declare 关键字定义的。这是环境声明的唯一情况还是还有其他情况?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    是的,环境声明让您可以告诉编译器现有的变量/函数/等。

    例如,假设在您的网页中,您正在使用一个添加全局变量的库,假设它的名称是 ON_READY,它是对函数的引用。
    您需要为其分配一个功能,以便您执行以下操作:

    ON_READY = () => {
        console.log("ready!");
        ...
    };
    

    编译器会抱怨:

    找不到名称“ON_READY”

    所以你使用环境声明来通知编译器这个变量存在以及它的类型是什么:

    declare var ON_READY: () => void;
    

    现在它不会抱怨找不到了。


    编辑

    当使用 declare 关键字时,它始终是环境的,就像它在您链接到的文章中所说的那样:

    declare 关键字用于环境声明 定义一个可能不是源自 TypeScript 文件的变量

    非环境声明只是普通的变量/函数声明:

    let x: number;
    const y = "string";
    var a = () => { console.log("here"); }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2021-04-26
    • 2018-04-07
    • 2012-10-12
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多