当前位置: 首页 > 知识库问答 >
问题:

“声明”在“导出声明集体诉讼”中有什么作用?

凌华奥
2023-03-14

为什么我们需要在语句中声明?

export declare class Actions {
    ...
}

共有3个答案

孙承弼
2023-03-14

typescript中的<code>declare</code>关键字用于告诉typescript编译器声明是在其他地方定义的(在外部javascript文件或运行时环境的一部分中编写的)。

假设我们在其他地方声明了一个名为foo的变量。当我们尝试引用该变量时,typescript编译器将抛出一个错误:

foo = 'random'; // Error: 'foo' is not defined

我们可以使用声明关键字来解决这个问题:

declare var foo: string;
foo = 'random';  // no error anymore

这会产生以下后果:

  • foo 实际上没有在其他任何地方声明时,并且我们尝试使用该变量时,可能会发生运行时错误。因此,仅当您知道此时变量可用时才使用 declare 关键字。
  • 因为我们知道类型,所以我们(可能)可以访问我们的 IDE 智能感知。
  • 因为我们知道类型,所以 Typescript 编译器可以在编译时检查类型,并可以警告我们在某些情况下是否使用了错误的类型。
冀子石
2023-03-14

要理解这一点,你必须首先理解“声明”关键字。

下面是吉尔·芬克博客的一个很好的解释:

TypeScript declare关键字用于声明可能不是源自TypeScript文件的变量。

例如,假设我们有一个名为myLibrary的库,它没有TypeScript声明文件,但在全局命名空间中有一个名为myLibrary的命名空间。如果您想在TypeScript代码中使用该库,您可以使用以下代码:

declare var myLibrary;

TypeScript 运行时将提供给 myLibrary 变量的类型是 any 类型。这里的问题是,在设计时,您将没有该变量的智能感知,但您将能够在代码中使用该库。在不使用 declare 关键字的情况下具有相同行为的另一个选项是仅使用具有 any 类型的变量:

var myLibrary: any;

这两个代码示例将产生相同的JavaScript输出,但声明示例更可读,并表示环境声明。

因此,在您理解“声明”关键字后,请返回找到

export declare class Action{
...
}

该类的真正实现可能在其他地方,例如.js文件

楚宇
2023-03-14

找到了我想要的:

声明与变量

var创建一个新变量。声明用于告诉TypeScript该变量已在其他地方创建。如果您使用声明,则不会向生成的JavaScript添加任何内容-它只是对编译器的提示。

例如,如果您使用定义var exoutalModule的外部脚本,您将使用声明var exoutalModule向TypeScript编译器提示exoutalModule已经设置好

 类似资料:
  • %1有编译器错误,而%2是合法的。 为什么变量声明的类型必须与我们传递给对象类型的类型匹配(不允许派生类型)?我使用的数组如下所示,这是完全正确的: 有人能告诉我为什么集合必须声明为条件2吗?谢谢

  • 10.4. 导入声明 可以在一个Go语言源文件包声明语句之后,其它非导入声明语句之前,包含零到多个导入包声明语句。每个导入声明可以单独指定一个导入路径,也可以通过圆括号同时导入多个导入路径。下面两个导入形式是等价的,但是第二种形式更为常见。 import "fmt" import "os" import ( "fmt" "os" ) 导入的包之间可以通过添加空行来分组;通常将来

  • 在这个 nodejs 代码中, 那个… “声明变量”和“变量”有什么区别? 当我在谷歌上搜索时,我得到了runtime这个词。 wiki说运行时是计算机程序运行时的一种操作.... 但我不能理解。 第1行,“进程”之后的“:”和“NodeJS.进程”是什么意思? 这是否意味着“进程”等于“NodeJS.process”? 还有第4行,在“__filename”和“string”之后的“:”是什么意

  • 问题内容: 在JDK 1.7中,存在一个声明。 他们为什么要制造新的而不使用: 问题答案: 因为通过返回的 后盾 给定的数组。它包装该数组;数组的更改反映在中,反之亦然。 另外,因此,返回的此处具有固定大小。因此,它不能是因为可以增长或收缩。

  • 2.2. 声明 声明语句定义了程序的各种实体对象以及部分或全部的属性。Go语言主要有四种类型的声明语句:var、const、type和func,分别对应变量、常量、类型和函数实体对象的声明。这一章我们重点讨论变量和类型的声明,第三章将讨论常量的声明,第五章将讨论函数的声明。 一个Go语言编写的程序对应一个或多个以.go为文件后缀名的源文件中。每个源文件以包的声明语句开始,说明该源文件是属于哪个包。

  • 本页包含内容: 模块范围 代码块 引入声明 常量声明 变量声明 类型的别名声明 函数声明 枚举声明 结构体声明 类声明 协议声明 构造器声明 析构声明 扩展声明 下标脚本声明 运算符声明 声明修饰符 一条声明可以在你的程序里引入新的名字和构造。举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型。你也可以使用一条声明来延长一个已经存在的命名好的类型

  • 这里需要说明一下,笔者不建议在Windows环境下进行深度学习的研究,一方面是因为Windows所对应的框架搭建的依赖过多,社区设定不完全;另一方面,Linux系统下对显卡支持、内存释放以及存储空间调整等硬件功能支持较好。如果您对Linux环境感到陌生,并且大多数开发环境在Windows下更方便操作的话,希望这篇文章对您会有帮助。 关于计算机的硬件配置说明 推荐配置 如果您是高校学生或者高级研究人

  • 本教程不得用于任何形式的商业用途,如果需要转载请与作者SCP-173联系,如果发现未经允许复制转载,将保留追求其法律责任的权利。 关于计算机的硬件配置说明 推荐配置 如果您是高校学生或者高级研究人员,并且实验室或者个人资金充沛,建议您采用如下配置: 主板:X99型号或Z170型号 CPU:i7-5830K或i7-6700K 及其以上高级型号 内存:品牌内存,总容量32G以上,根据主板组成4通道或8