Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 打字脚本打字和NPM_Typescript_Npm_Definitelytyped - Fatal编程技术网

Typescript 打字脚本打字和NPM

Typescript 打字脚本打字和NPM,typescript,npm,definitelytyped,Typescript,Npm,Definitelytyped,我很高兴NPM现在内置了对导入TypeScript类型包装的支持。然而,我发现在如何维护这些方面不一致。例如,我尝试导入“node-git”和“@types/node-git”,虽然两者都能工作,但它们似乎是非常不同的API,不能很好地配合使用 这种情况下的最佳实践是什么?我是否应该首先导入库的类型包装器,检查其版本,然后专门导入该版本的库?我是否需要加快创建自己的TypeScript包装器的速度(它们可以由工具生成) 提前感谢您的任何见解 没有定义的“最佳实践”。在我看来,您应该使用您想要的任

我很高兴NPM现在内置了对导入TypeScript类型包装的支持。然而,我发现在如何维护这些方面不一致。例如,我尝试导入“node-git”和“@types/node-git”,虽然两者都能工作,但它们似乎是非常不同的API,不能很好地配合使用

这种情况下的最佳实践是什么?我是否应该首先导入库的类型包装器,检查其版本,然后专门导入该版本的库?我是否需要加快创建自己的TypeScript包装器的速度(它们可以由工具生成)

提前感谢您的任何见解

没有定义的“最佳实践”。在我看来,您应该使用您想要的任何版本的库(即,
node git
)。如果有对应于该版本的types包,那就太好了。如果没有,请考虑创建一个PR(假设类型包由DealTyelyType维护)。如果您迫不及待要合并PR,可以将更新的
index.d.ts
文件添加到项目中,并使用
typeRoots
编译器选项告知typescript文件的位置

例如,如果将更新的类型添加到
src/types/node\u git/index.d.ts
,则将其添加到
tsconfig.json

{
    "compilerOptions": {
        "typeRoots": ["src/types", "node_modules/@types"]
    }
}

一个javascript库和一个typescript包装器可能是两个不同的项目,来自不同的人,大多数js库都有这种情况,因为不是所有的js开发人员都使用typescriptas来“生成工具”,如果库是用JSDocs很好地记录的,那么这个可能就可以了:这些都是有用的注释。非常感谢。