是什么。让我们看一个具体的例子。下面是用TypeScript编写的SAPUI5组件:importUIComponentfrom"sap/ui/core/UIComponent";/***@namespaceui5.typescript.helloworld*/exportdefaultclassComponentextendsUIComponent{publicmultiply(x:number,y:数字):数字{返回x*y;}}第一行导入的UIComponent的类型定义是从哪里来的呢?如果我们在“sap/ui/core/UIComponent”上点击鼠标左键,我们会看到一条declaremodule语句。点击之后,在node_modules文件夹下的@types文件夹下的openui5下,可以找到一个sap.ui.core.d.ts文件:这就是所谓的DefinitelyTyped外部类型定义文件。UI5forTypeScript的外部类型定义文件的安装方法:npminstall--save@types/openui5地址:https://github.com/Definitely...这些外部定义是从OpenUI5JSDoc生成的。如果出现问题,您需要修复原始OpenUI5存储库中的生成器或JSDoc,而不是该存储库中的定义文件。OpenUI5类型定义发布在两个npm包名下:@openui5/ts-types-esm(由UI5开发团队直接发布)@types/openui5(通过DefinitelyTyped维护)两者的区别:对于@openui5/ts-types-esm上的那些typedefs,每当OpenUI5发布新的补丁版本时,都会发布新的补丁版本。即使类型定义没有改变。这意味着当使用完全相同的版本时,代码和类型定义是完全同步的。但是,对于@types/openui5,DefinitelyTyped采用definitelyTyped的版本控制方法:在库包和类型声明包之间仅对齐主要和次要版本号。类型声明包的补丁版本独立于库补丁版本。这背后的原因是,使用语义版本控制,API将对相同主要/次要版本的所有补丁版本保持不变。例如:OpenUI51.90.0和OpenUI51.90.8之间没有API更改。因此,无需为OpenUI51.90.8(以及1.90.7、1.90.6等)发布新的类型定义。唯一的例外是,当文档或定义生成器有重大改进或修复时,我们可能仍会在DefinitiveTyped上创建新的补丁版本。更多Jerry原创文章在这里:《王子熙》:
