此问题与使用TypeScript的Angular v.2 +有关。
我什么时候应该将键入内容作为单独的导入内容导入?-如何区分这两种情况?
在特定情况下,我根据建议here
安装了以下两个依赖项 ngOnInit() { (<HTMLElement>document.querySelector('.pagemode')).style.z-index = 1;}
如果我错了,请纠正我:
答案 0 :(得分:1)
TypeScript可让您拥有声明文件,这些文件可让您描述用(例如)纯JavaScript编写的代码的形状。因此,通过引用这些文件之一,您可以确切地告诉TypeScript如何假定您正在使用的JavaScript代码或库是“类型化”的。当然,这意味着声明文件需要仔细编写并与您使用的JavaScript库保持同步。
我什么时候应该将键入内容作为单独的导入内容导入??
像jquery, lodash
这样的一些javascript库是使用平面javascript编写的,或者不提供使用typescript的支持,而DefinitelyTyped是单独的项目,可以为像jquery,lodash
这样的项目提供打字支持。
带有TypeScript的Angular在没有导入类型的情况下仍然可以工作,但是在IDE中有关方法的提示在没有导入类型的情况下无法工作
键入不仅仅是智能,例如,防止传递错误的参数
$([1,2,3,4]) // for example the selector type is string not array
许多库没有类型的单独导入,因为类型是库本身的一部分
Angular是使用打字稿的一个很好的例子。
当程序员面对未使用文档中未提及的新lib时,如何确定他是否需要另外提取类型?(意见)
声明文件是库/框架作者打字稿团队支持react的工作,例如,因为此要求支持jsx,vuejs在那里更新了核心以支持打字稿,正如我所说的那样,它支持打字稿或打字在作者的工作中,有时他们出于任何原因都不希望您支持打字,如果您不满意与正在查找的库相关的类型,则需要检查DefinitelyTyped如果需要的话,可以自行声明文件。