javascript - 打字稿:类不从接口继承类型?
问题描述
我想在客户端和服务器之间共享一些端点类型:
type EndpointParams = {
'/user': { userId: number },
'/post': { postId: number },
};
在服务器上,我想定义端点控制器:
interface Endpoint<T extends keyof EndpointParams> {
path: T;
handleRequest(params: EndpointParams[T]): void;
}
class UserEndpoint implements Endpoint<'/user'> {
path = '/user' as const;
handleRequest({ userId }) {}
}
但是,我得到Binding element 'userId' implicitly has an 'any' type.
. 为什么 TS 不自动找出那userId
是一个数字?它不应该从界面中获取吗?
其他一些相关问题:
- 可以省略
as const
吗?没有它,我得到Type 'string' is not assignable to type '"/user"'.
- 是否可以像函数一样推断泛型参数?
- 可以做
path
静态吗?AFAIK 接口不支持静态。
解决方案
推荐阅读
- c - 从 C 中的另一个文件读取输入的作业程序
- c++ - 错误:使用未声明的标识符“makeDest”
- python - 在 django rest 框架中自定义一个视图句柄 POST 和 DELETE 方法
- r - 从 r 中的最后一行减去列 [i] 行
- python - 为什么当我将列表转换为字符串时加入函数不起作用
- c# - 我可以以编程方式设置 Xamarin.Forms ListView 中按钮的颜色吗?
- verilog - Verilog/vwf中模拟定义赋值的方式
- javascript - ViewModel 上的 Knockoutjs 绑定输入
- flutter - Flutter 是否在单个应用程序中同时支持 ARCore 和 ARKit 插件?
- go - sync.WaitGroup 和嵌套循环