Javascript 如何将导入的库用作类型属性
我想声明一个类型,并将其属性之一设置为导入的库 这样做的最终目标是在一个地方定义我的平台的依赖项 简化一下,我有这样的想法:Javascript 如何将导入的库用作类型属性,javascript,typescript,dependency-injection,typescript-typings,Javascript,Typescript,Dependency Injection,Typescript Typings,我想声明一个类型,并将其属性之一设置为导入的库 这样做的最终目标是在一个地方定义我的平台的依赖项 简化一下,我有这样的想法: import * as crypto from 'crypto'; export type Dependencies = { ... (Some dependencies)... crypto: crypto; ... (Some more dependencies)... } function ({ crypto }: Dependencies, len
import * as crypto from 'crypto';
export type Dependencies = {
... (Some dependencies)...
crypto: crypto;
... (Some more dependencies)...
}
function ({ crypto }: Dependencies, length: number) {
return crypto
.createHmac('sha256', Math.random() * 10 ** length + '')
.digest('hex')
.substring(0, length);
}
但是在定义我得到的类型时,不能使用名称空间'crypto'作为类型。ts(2709)
我尝试过使用接口而不是类型,但遇到了同样的问题
归根结底,问题是:有没有办法定义接口或类型的X属性(或方法)应该是库的属性(或方法)
谢谢 试试看:
type CryptoModule = typeof import("crypto");
愚蠢的例子:
/**
*@param{CryptoModule}arg
*/
常量foo=(arg)=>42;
foo(“hi”);//类型为“hi”的参数不能分配给类型为“typeof import(“crypto”)的参数。ts(2345)
foo(加密);//好的
搜索已导入库的类型定义它已导入。。。更多的是关于如何使用它来设置类型/接口的属性/方法