gpt4 book ai didi

typescript - 如何在 Typescript 中将字符串变量转换为字符串文字类型

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

在 Typescript 中,假设我想调用一个具有以下签名的函数-

function foo(param: "TRUE"|"FALSE"|"NONE")

我该怎么做-

var str = runtimeString()
if(str === "TRUE" | str === "FALSE" | str === "NONE")
foo(str)

或者,显式值是唯一的方式-

var str = runtimeString()
if(str === "TRUE")
foo("TRUE")
else if(str === "FALSE" )
foo("FALSE")
else if(str === "NONE")
foo("NONE")

最佳答案

如果您确定运行时字符串是有效选项之一,您可以将字符串强制转换为期望字符串文字类型的函数类型。

type Tristate =  "TRUE"|"FALSE"|"NONE";

function foo(param: Tristate) {
return "enhanced: " + param;
}

let validInput = "NONE";
foo(validInput as Tristate);

另一种进行转换的方法是像这样在类型前面加上:

foo(<Tristate> validInput);

请注意,您忽略了编译器对运行时字符串中数据的意见。因此在运行时,定义的三个字符串以外的值可能会进入您的 foo 函数。

关于typescript - 如何在 Typescript 中将字符串变量转换为字符串文字类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38524972/

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