我想创建一个这样的函数:

function TT<O>(arg: O){}

我希望只有在提供O时才需要arg,例如:

TT() // OK!
TT<string>("hello") // OK!
TT<string>() // Typescript error, not OK, arg is required.

如何做到这一点呢?

推荐答案

这可以通过在TypeScrip中重载方法来实现. 这不是我想出来的.我使用了chat-gpt:)

function TT(): void;
function TT <O> (arg: O): void;
function TT<O>(arg?: O) {
   // code ...
}

TT() // OK!
TT<string>("hello") // OK!
TT<string>() // Typescript error, not OK, arg is required.

Javascript相关问答推荐

使用脚本标签时的JSDoc智能感知

如何在Jest中调用setupFile下列出的文件所需的函数?

IOS(React Native)中未找到模块SquareReaderSDK

如何判断属于多个元素的属性是否具有多个值之一

Klaro与Angular的集成

zoom svg以适应圆

Google Apps脚本中的discord邀请API响应的日期解析问题

将状态向下传递给映射的子元素

WebRTC关闭navigator. getUserMedia正确

当点击注册页面上的注册按钮时,邮箱重复

Chromium会将URL与JS一起传递到V8吗?

如何从调整大小/zoom 的SVG路径定义新的d属性?""

WebGL 2.0无符号整数输入变量

Regex结果包含额外的match/group,只带一个返回

查询参数未在我的Next.js应用路由接口中定义

如何在 Select 文本时停止Click事件?

WebSocketException:远程方在未完成关闭握手的情况下关闭了WebSocket连接.&#三十九岁;

FileReader()不能处理Firefox和GiB文件

Reaction useState和useLoaderData的组合使用引发无限循环错误

P5.js中矩形内的圆弧