当前位置:  开发笔记 > 编程语言 > 正文

什么是打字稿中的打字

如何解决《什么是打字稿中的打字》经验,为你挑选了2个好方法。

我是Angular2的新手,到目前为止我很享受,但有一个问题:打字.我无法弄清楚如何使用它们以及它们到底是什么.有些地方说使用打字,其他人说使用npm来安装定义.

我糊涂了!!



1> Alex..:

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

TypeScript主要是关于向JavaScript 添加类型.这意味着TypeScript要求您准确描述对象和数据的格式.当您这样做时,这意味着编译器可以调查您的代码并发现错误.它可以看到您尝试使用错误类型的参数调用函数,或者引用当前作用域中不可访问的变量.

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

但是,当您使用jQuery或moment.js等外部库时,该代码中没有类型的信息.因此,为了将它与TypeScript一起使用,您还必须获取描述该代码类型的文件.这些是类型声明文件,通常带有文件扩展名.d.ts.幸运的是,人们已经为大多数常见的javascript库编写了那种类型的声明文件.

打字只是安装这些文件的工具.现在最好的做法就是使用npm.

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

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


这是我整天见过的最好的答案!太糟糕了,我还不能投票。
@Alfy我很高兴可以为您提供帮助:)

2> E_net4 says ..:

什么是打字?

简而言之,TypeScript为JavaScript添加了静态类型.由于JavaScript本身并未定义此类型定义,因此必须通过其他机制将它们编写并包含在TypeScript编译过程中.换句话说,JavaScript库可以定义一个函数:

export function createPerson(name, age, initScore) { ... }  

但是在TypeScript的静态类型环境中,对于开发人员来说,有这样的东西会更有用:

interface Person {
    name: string,
    age: number,
    score: number
}

export function createPerson(name: string, age: number, initScore?: number): Person;

的目的的类型声明,通常被称为分型,类型定义或只是类型,是在这些细节上实现填充,从而识别甚至跨越库API误用.它们通常驻留在具有.d.ts扩展名的文件中,并且可以.ts使用编译器从文件构建.但是,当程序不是用TypeScript编写时,这些声明通常是手动编写的.


有了这样说,你的困惑是有道理的:随着时间的推移,不止一种方法来安装和管理TypeScript声明.然而,现在有一个官方(因此推荐)安装和使用声明文件的方法,它在此处记录:

在TypeScript 2.0中,在获取,使用和查找声明文件时,它变得非常容易.这个页面详细说明了如何做到这三点

[...]

在TypeScript 2.0及更高版本中获取类型声明不需要除npm之外的任何工具.

例如,检索Angular的声明就像在项目中安装此依赖项一样简单:

npm install --save @types/angular 

@types编译器将自动考虑命名空间中的包以检索类型声明.此外,如果这些声明已经嵌入到npm包中,除了安装该包之外,您不必执行任何其他操作(此类包的示例是redux).有关更多信息,请参阅tsconfig.json上的文档.还有一个关于创建自己的声明文件的部分,这是所有希望向自己的库添加类型声明的开发人员的推荐读物.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有