gpt4 book ai didi

typescript - 确定类型是 'string' 文字、 'number' 文字还是 'string | number' 文字

转载 作者:搜寻专家 更新时间:2023-10-30 21:09:58 32 4
gpt4 key购买 nike

由于 typescript 现在支持条件类型,我决定进行一些元编程,为 VSCODE intellisense 添加更多 flavor 。但是,虽然使用 A extends B 可以轻松分离其他类型,但我很难确定提供的类型是否为文字。

所以问题是 - 如何确定给定类型是否为文字类型?

最佳答案

我不确定您的用例是什么。就个人而言,我会做这样的事情:

type IfStringOrNumberLiteral<T, Y=true, N=false> =
string extends T ? N : // must be narrower than string
number extends T ? N : // must be narrower than number
[T] extends [never] ? N : // must be wider than never
[T] extends [string | number] ? Y : // must be narrower than string | number
N

我总是使用 --strictNullChecks因此,当涉及到如何处理 nullundefined 时,您的情况可能会有所不同。当然,可以对其进行修改以满足您的任何特定需求。大多数情况下,我只是想展示 ( X extends Y ? true : false ) extends true 形式的迂回构造的替代方案。你:V

希望对您有所帮助;祝你好运。

关于typescript - 确定类型是 'string' 文字、 'number' 文字还是 'string | number' 文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52806230/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com