// `./module.ts`
export class User
{
name: string
surname: string
age: number
}
import * as module from "./module"
生成namespace module
,这很糟糕。
呼叫typeof module
阻止class generics
的{{1}}:
类型
module
不可分配给类型User
的参数
此typeof User
无法通过另一个module
或namespace module {}
调用来扩展。
interface module {}
用作namespace
? class
查看typescriptlang.org/play或下一步阅读
namespace _0.A - real behavior
namespace _0.B - expected behavior
namespace _1.extend - extend expected behavior
答案 0 :(得分:-1)
type Convert<T> = {
[k in keyof T]: T[k] extends { new(): infer R }
? R
: T[k]
}
完整的示例代码,在问题中,请看typescriptlang.org/play