首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以下列语法从函数类型访问<T>

如何以下列语法从函数类型访问<T>
EN

Stack Overflow用户
提问于 2022-05-23 16:20:26
回答 1查看 73关注 0票数 1

下面是我正在处理的项目中类型的抽象版本。

代码语言:javascript
运行
复制
// types.ts
interface Methods {
  request<T>(params: RequestParams): Promise<T>;
}

// implementation.ts
public request: Methods["request"] = async <T>(params) => {
  // ...
};

我原以为我可以像上面那样访问<T>,但是一旦我添加它,params就会变成非类型化/任何原因。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 17:10:30

使用泛型类型编写赋值时,TypeScript不会从变量类型推断赋值的类型。它只是根据鸭子类型规则验证赋值类型(<T>(params: any): Promise<T>)与变量类型(<T>(params: RequestParams): Promise<T>)是否兼容。

因此,您不应该期望自动输入params,但是您应该自己键入它:

代码语言:javascript
运行
复制
// types.ts
interface Methods {
  request<T>(params: RequestParams): Promise<T>;
}

// implementation.ts
public request: Methods["request"] = async <T>(params: RequestParams) => {
  // ...
};

TypeScript游乐场链接

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72351793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档