我对Angular2是新手,到目前为止我很享受,但有一个问题:Typings.我不知道如何使用它们,它们到底是什么.有些地方说使用打字,另一些地方说使用npm来安装定义.

我很困惑!!

推荐答案

JavaScript是非类型化的,这意味着我们可以无约束地传递和使用数据、对象和函数.我们可以编写代码来调用对象上不存在的方法,或者引用我们没有的变量.在编写代码时,这些类型的错误可能很难发现,并且可能会导致代码不稳定和有缺陷.对代码进行大的更改可能会变得困难和危险,因为您无法立即看到某些更改是否与其他地方的代码冲突.

TypeScript主要是向JavaScript添加types.这意味着TypeScript要求您准确描述对象和数据的格式.当您这样做时,这意味着编译器可以调查您的代码并发现错误.可以看出,您试图使用错误类型的参数调用函数,或者引用当前范围内无法访问的变量.

当您自己编写TypeScript时,代码的这种形式化描述是代码本身的一部分.

但是,当您使用jQuery或moment等外部库时.js,代码中没有关于类型的信息.因此,为了将其与TypeScript结合使用,还必须获得描述代码类型的文件.这些是type declaration files,通常文件扩展名为.d.ts.幸运的是,人们已经为最常见的javascript库编写了这些类型的声明文件.

Typings只是一个安装这些文件的工具.现在的最佳实践是just use npm.

当你安装了这些文件,这基本上只意味着下载它们并将它们放入你的项目中,TypeScript编译器将理解*外部代码,你将能够使用这些库.否则你只会到处出错.

*根据您设置和配置项目的方式,您可能需要配置typescript来专门查找这些文件,或者它可能在没有您的任何配置的情况下工作

Typescript相关问答推荐

Tailwind CSS样式不在Svelte应用程序中呈现

React-Native运行方法通过监听另一个状态来更新一个状态

替代语法/逻辑以避免TS变量被分配之前使用." "

在将对象从一个对象转换成另一个对象时,可以缩小对象的键吗?

属性的类型,该属性是类的键,其值是所需类型

如果存在ts—mock—imports,我们是否需要typescpt中的IoC容器

TypeScrip-将<;A、B、C和>之一转换为联合A|B|C

适当限制泛型函数中的记录

在分配给类型的只读变量中维护const的类型

CDK从可选的Lambda角色属性承担角色/复合主体中没有非空断言

使用条件类型的类型保护

如何将对象数组中的键映射到另一种对象类型的键?

TYPE FOR ARRAY,其中每个泛型元素是单独的键类型对,然后在该数组上循环

基于泛型的条件接口键

为什么TS2339;TS2339;TS2339:类型A上不存在属性a?

如何在try 运行独立的文字脚本Angular 项目时修复Visual Studio中的MODULE_NOT_FOUND

编剧- Select 动态下拉选项

使用&reaction测试库&如何使用提供程序包装我的所有测试组件

带有过滤键的 Typescript 映射类型

TS2532:对象可能未定义