typescript怎么定义全局的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript怎么定义全局的函数相关的知识,希望对你有一定的参考价值。
第一步,双击打开HBuilderX编辑工具,新建TypeScript文件并定义类Apple,定义三个变量a、b、c,a是具体的数据类型,而b和c是可变的,如下图所示:
第二步,实例化对象ap,然后给变量a进行赋值,使用数值类型,如下图所示:
第三步,如果将数值类型改为字符串类型,运行TypeScript文件出现报错,如下图所示:
第四步,使用同样的方法,给变量b赋值20,接着赋值undefined,未出现报错,如下图所示:
第五步,再添加一个给变量b赋值,值为null,运行之后也不报错,如下图所示:
第六步,最后使用同样的方法,给变量c赋值,分别为数值类型、undefined和null,结果出现了报错,如下图所示:
参考技术A javascript中的函数:/*普通函数*/
function add(x, y)
console.log(x + y);
add(1, 2);
/*匿名函数*/
var addFun = function (x, y)
console.log(x + y);
;
addFun(2, 3);
10
在TypeScript中,我们可以给函数指定类型,这样在编译阶段会规避很多错误.函数类型分为参数类型和返回值类型,如下代码所示,参数类型直接在参数后指定,返回值类型则在该函数后面指定。 TypeScript能够根据返回语句自动推断出返回值类型,因此我们通常省略它。本回答被提问者采纳
Typescript 中的“声明全局”是啥?
【中文标题】Typescript 中的“声明全局”是啥?【英文标题】:What is 'declare global' in Typescript?Typescript 中的“声明全局”是什么? 【发布时间】:2019-11-24 04:29:55 【问题描述】:什么是“声明全局”,怎么可能?我在 Lodash 类型中找到了这段代码。问题是,当我尝试将其复制到 my.d.ts
文件中时,因为 global 不是命名空间、模块、函数或 var,我不允许这样做。所以问题是如何在 Typescript 中声明这个声明。
PS 那么也许有一些额外的编译器选项可以实现这一点?
declare global
interface Set<T>
【问题讨论】:
【参考方案1】:这不依赖于编译器设置。 declare global
在具有import
或export
的文件中使用以在全局范围内声明事物。这在包含 import
或 export
的文件中是必需的,因为这些文件被视为模块,并且在模块中声明的任何内容都在模块范围内。
在不是模块的文件(即不包含import
/export
)中使用declare global
是错误的,因为这样的文件中的所有内容都在全局范围内。
【讨论】:
是的,这些原理我都是通过实践学会的,但是有官方文档解释吗? @JohnHou 目前有typescriptlang.org/docs/handbook/… 和typescriptlang.org/docs/handbook/declaration-files/templates/…以上是关于typescript怎么定义全局的函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jest 的自定义测试环境文件中使用 TypeScript?