Get*_*awn 9 javascript typescript
我有两个模块:
在一个模块中,我引用了另一个模块中的函数run:
@myorg/服务器
import { Client } from '.'
import { Middleware } from '@myorg/middleware'
let client = new Client()
Middleware.run(client)
Run Code Online (Sandbox Code Playgroud)
然后在另一个模块中我只引用这样的类型:
@myorg/中间件
// References a '.d.ts' file
import { Client } from '@myorg/server'
export class Middleware {
public run(client: Client){
// Do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
当我进行此设置时,Middleware.run(client)出现以下错误:
'import("/framework/server/src/Client").Client' 类型的参数不可分配给 'import("/framework/server/types/Client").Client' 类型的参数。
正如错误指出的src(实际代码)和types(.d.ts文件)不兼容。造成这种情况的原因是什么以及如何解决它?
您还应该从导入该类型的Client同一@myorg/middleware源文件中@myorg/server导入该类型。
说明:@myorg/middleware您正在从类型声明文件(.d.ts)导入类型Client,我假设您已使用指令在文件顶部引用了它///。而在@myorg/server该Client类型中,直接从实际源代码导入。因此 Typescript 不会将这两者视为相同,这就是您收到此错误的原因。