Typescript 函数参数的可选值提示

请问然后让函数的参数显示一些默认的可选值,也可以自定义值。https://element.eleme.cn/#/zh... 类似这种感觉
目前我这么写会提示错误。

type a = "a"|"b"

function foo(m:a){
    return
}

foo("a")

foo("c")//Argument of type '"c"' is not assignable to parameter of type 'a'.ts(2345)

这么写又会失去提示。

type a = "a"|"b" | string

function foo(m:a){
    return
}

foo("a")

foo("c")
阅读 4.2k
3 个回答

你的第一种写法,用type定义了 a 的类型为 'a'| 'b'
参数m做了类型判断,m必须是'a''b'中的一种,故传值'c'报错

第二种写法,用type定义了 a 的类型为 'a'| 'b' | string
其中string代表字符串类型,字符串包括了前面的'a''b',所以即使你把a和b都删掉也不会报类型检查的错误
在类型为string的情况下你传入任何字符串的值都不会使代码报错,例如'sdasdasdsadasdas'
但如果传入number类型比如321就会报错(解决报错的方法是添加number类型type a = string | number)

string类型包含了'c'

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题