强制执行可选的打字稿

时间:2019-12-16 14:45:43

标签: typescript

有没有一种方法可以强制某个函数只能以可选类型调用

其中“可选”定义为

type Optional<T> = T | undefined

我想定义一个函数f,以便

declare type Foo = { foo: string }
declare var x: Optional<Foo>
declare var y: Foo

f(x) // ts typecheck ok
f(y) // ts typecheck ko 

1 个答案:

答案 0 :(得分:0)

据我所知:

declare function f<T>(v:Optional<T> extends T ? T : never) : any;

游乐场here