有没有一种方法可以使用泛型参数导入类型?
Is there a way I can import types using a generic parameter?
我的函数有点像动态 import()
语法的包装器:
async importWrapper(url) {
return await import(url);
}
有没有办法让这个函数根据 url
参数的值使用 return 类型?
我试过了:
async function importWrapper<T extends string>(url: T) : Promise<typeof import(T)> {
return await import(url);
}
但这给出了一个错误:
Promise<typeof import(T)>
// ^^^--- TS1141 String literal expected
至少从 TypeScript 4.6 开始,无法表达 import(T)
或 typeof import(T)
.
形式的“import
类型”
microsoft/TypeScript#44636 上有一个开放的功能请求,要求支持这样的事情。它目前被标记为“等待反馈”,这意味着他们希望在考虑采用此类功能之前了解社区的想法。因此,您可能想提出问题并评论您的用例;特别是为什么您需要这个以及为什么现有的解决方法还不够。
无论如何,我不希望很快看到任何实施,甚至可能永远不会。 A comment TS 的开发负责人表示,实施起来将是一项“繁重的工作”。好吧!
我的函数有点像动态 import()
语法的包装器:
async importWrapper(url) {
return await import(url);
}
有没有办法让这个函数根据 url
参数的值使用 return 类型?
我试过了:
async function importWrapper<T extends string>(url: T) : Promise<typeof import(T)> {
return await import(url);
}
但这给出了一个错误:
Promise<typeof import(T)>
// ^^^--- TS1141 String literal expected
至少从 TypeScript 4.6 开始,无法表达 import(T)
或 typeof import(T)
.
import
类型”
microsoft/TypeScript#44636 上有一个开放的功能请求,要求支持这样的事情。它目前被标记为“等待反馈”,这意味着他们希望在考虑采用此类功能之前了解社区的想法。因此,您可能想提出问题并评论您的用例;特别是为什么您需要这个以及为什么现有的解决方法还不够。
无论如何,我不希望很快看到任何实施,甚至可能永远不会。 A comment TS 的开发负责人表示,实施起来将是一项“繁重的工作”。好吧!