惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
宝玉的分享
宝玉的分享
博客园_首页
V
V2EX
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
Recorded Future
Recorded Future
J
Java Code Geeks
Martin Fowler
Martin Fowler
小众软件
小众软件
人人都是产品经理
人人都是产品经理
Help Net Security
Help Net Security
The Register - Security
The Register - Security
B
Blog RSS Feed
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
D
DataBreaches.Net
博客园 - 【当耐特】
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 热门话题
Jina AI
Jina AI
G
GRAHAM CLULEY
H
Help Net Security
D
Docker
Microsoft Security Blog
Microsoft Security Blog
S
Securelist
O
OpenAI News
U
Unit 42
V2EX - 技术
V2EX - 技术
腾讯CDC
罗磊的独立博客

TypeScript

ts 生态有没有开源的简单的 kv 配置管理项目 - V2EX 你们是怎么学习 typescript 的? - V2EX 用 Go 移植的 TypeScript 7 要来了 - V2EX TypeScript5.9,仿佛走出草原来到了现代社会 - V2EX Typescript 有没有能对接 AI 的知识库或者文档?能处理稍微复杂点的类型 - V2EX typescript 如何返回一个动态对象类型 - V2EX ts 有没有直接能查看最终类型的方法 - V2EX TypeScript Native 预览版发布了 - V2EX 关于 TypeScript 装饰器和接口的问题,请教一下各位 - V2EX 你们 typescript 用自带枚举还是字符串枚举,感觉字符串枚举类型用起来有点不可靠啊 - V2EX effect-ts - V2EX typescript 达人乱入 - V2EX TypeScript 宣布原生移植计划,性能将提升 10 倍? - V2EX #笔记#更好的 ts 重载声明方法 - V2EX 使用 satisfies 实现穷举类型保护 - V2EX 请教一个 TS 问题,不知能否实现 - V2EX 装饰器能不能装饰类的所有方法 - V2EX TypeSciprt 类型推断,如何进一步收窄类型? - V2EX TypeScript 项目打包发布到 npm,如何给方法和接口添加 dts TypeScript 类型推导真强大。 - V2EX 为啥下面这段代码 TS 不报错 - V2EX ts 类型约束+请求参数校验+自动生成 openapi/swagger 文档,这三者目前有整合为一体的最佳实践吗 - V2EX TypeScript 能不能别这么古怪,这行为什么会报错呢? - V2EX 怎么每次碰到想不通的代码行都出在 TypeScript😢 这行到底哪里有问题? - V2EX 低估了 typescript 的难度 - V2EX 前端写 nestjs 后端,用 TypeORM 时感到非常困惑,不知道是不是我的理解有问题 - V2EX 我列举了市面上最好的几个 TypeScript 教程, 想深入学习 TypeScript 的同学以后不用走弯路了 - V2EX 这样的函数类型定义在 ts 里面叫什么? - V2EX typescript 如何忽略泛型参数啊? - V2EX TypeScript 现在的应用场景 - V2EX ==TypeScript 写的 npm 包可以用 javascript 使用包的函数吗 - V2EX react 如何优雅的实现批量删除+二次确认 - V2EX TypeScript 怎么 wrap 一个函数并修改一下返回值? - V2EX 想请教个 TypeScript 抽象类继承父类的问题。 - V2EX vscode 纯 js 项目有类型推断和成员变量提示,但是如果 ts 混用的话, js 导入就全变成 any 了,请问有办法解决吗 这个项目这样定义 Typescript 类型和使用,学到了,有几个问题? - V2EX 这种的类型是不是实现不了(TypeScript) - V2EX 问题一个 typescript 类型包裹问题 - V2EX 遇到了极其诡异的不符合进入 if 条件的要求但是还是进入了 - V2EX typescript 的类型处理 - V2EX 想问问大家 TypeScript 中关于 null 处理的方式 - V2EX 有没有声明 typescript 类型的好办法以及前端样式的健壮性问题 - V2EX typescript 类型断言问题 - V2EX TypeScript 中类型编程简介 - V2EX [求助] 类型 { K:V } --> { "type": K , "conf": V } 且约束 - V2EX 大佬们, vscode 开发 ts,这个地方的提示,怎么修改成中文啊 - V2EX TypeScript 中「类型定义的命名空间」使用 - V2EX 有没有办法把 ts 的 error 报错改成 warning - V2EX [求助] 函数中使用泛型缩小参数类型 - V2EX
请教一个 Typescript 的问题 - V2EX
tlerbao · 2024-02-15 · via TypeScript

这是一个创建于 851 天前的主题,其中的信息可能已经有所发展或是发生改变。

有两个响应类型 ResultData (不分页)和 ResultPage (分页),我下面封装的 get 方法每次调用的时候都要导入 ResultPage 或 ResultData ;

http.get<ResultPage<SomeType>>("/test", params);

http.get<ResultData<SomeType>>("/test", params);

TS 有没有什么办法传入一个参数或怎样实现自动识别调用分页和不分页的类型?

get<T>(url: string, params?: object, _object = {}): Promise<T> {
  return this.service.get(url, { params, ..._object });
}

// 请求响应
export interface Result {
  code: string;
  message: string;
}

// 请求响应数据
export interface ResultData<T = any> extends Result {
  data: T;
}

// 请求分页响应
export interface ResultPage<T> extends Result {
  count: number;
  current: number;
  limit: number;
  data: T[];
}
des

1

des      2024 年 2 月 15 日 via iPhone

Promise<ResultPage<T>>

des

2

des      2024 年 2 月 15 日 via iPhone

@des 定义两个不同的 get ,getPage 和 getResult 吧

pursuer

3

pursuer      2024 年 2 月 15 日

大概试了一下类似这样
interface test{
(page:true):Promise<ResultPage>
(page:false):Promise<ResultData>
}
let get:test=function(page){
...
} as test;

tlerbao

4

tlerbao      2024 年 2 月 15 日

@des #2 定义两个 get 看来是比较简单的方法,但是为了学习更多的知识,不知道 typescript 有没有什么工具方法,或者传入两个泛型参数之类的(假设)。所以来问问

zogwosh

6

zogwosh      2024 年 2 月 15 日


用函数重载

BeautifulSoap

7

BeautifulSoap      2024 年 2 月 15 日

为什么一定要定义成接口,定义 ResultData 和 ResultPage 的 class 实现 Result 接口,然后传对应 class 的 object ,get 里用 instanceof 判断下不就解决的事情,,,,,,

ts 编译时会把所有接口信息抹去,在接口上折腾没意义(虽然我不知道类型体操有没有黑魔法能做到)

wusheng0

8

wusheng0      2024 年 2 月 15 日 via Android

T extends Array ? ResultPage : ResultData 这种呢

mmdsun

9

mmdsun      2024 年 2 月 16 日 via iPhone

自定义类型?

// 定义是否包含分页属性的类型检查
type IsPaginated<Params> = Params extends { current: number; limit: number } ? true : false;

// 结果类型的条件选择
type DecideResult<T, Params> = IsPaginated<Params> extends true ? ResultPage<T> : ResultData<T>;

tlerbao

12

tlerbao      2024 年 2 月 17 日

@zhours 学到了,
但是在 page 的时候要先在前面写一个 never 感觉怪怪的也不语义化,还有更好的办法吗?大神
const noPage = get<string>("");
const Page = get<never, string>("");