打字稿使参数可选

亚当

这是游乐场

我试图使参数成为可选参数,但仍使打字稿理解从函数返回的内容。

如果定义了param,则返回param的类型。否则-如果未提供参数,则函数将返回未定义。

const meh = <T>(initialData?: T): { data: T | undefined} => {
    if (initialData) {
        return { data: initialData }
    }

    return {
        data: undefined
    }
}

const res1: undefined = meh().data // is ok:

type ResType = {
    hello: string
}

const res2: ResType = meh<ResType>({ hello: 'hello'}).data.hello // TS error: Object is possibly undefined

有道理。虽然,我找到了条件类型,但我可以做类似的事情

const meh = <T>(initialData?: T): { data: T ? T : undefined} => {

,但是会产生语法错误。

普希金

您可以使用函数重载吗?

function meh(): { data: undefined };
function meh<T>(initialData: T): { data: T };

function meh<T>(initialData?: T): any {
    if (initialData) {
        return { data: initialData }
    }

    return {
        data: undefined
    }
}

type ResType = {
    hello: string
}

const res1: ResType = meh<ResType>({ hello: 'hello'}).data
const res2: undefined = meh().data

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

打字稿动态链接参数

来自分类Dev

打字稿动态链接参数

来自分类Dev

打字稿-带参数的箭头功能

来自分类Dev

子类的打字稿定义作为参数

来自分类Dev

带有可选参数的打字稿构建网址

来自分类Dev

打字稿:从方法参数中调用方法

来自分类Dev

打字稿多类型参数

来自分类Dev

打字稿与对象解构的可选链

来自分类Dev

打字稿根据参数返回不同的接口

来自分类Dev

覆盖函数参数-打字稿

来自分类Dev

打字稿参数相互依赖

来自分类Dev

“ Duck”打字与打字稿中的函数参数

来自分类Dev

打字稿。可选参数在v4中传播崩溃

来自分类Dev

打字稿构造函数参数工厂键入

来自分类Dev

打字稿:如何键入可变参数?

来自分类Dev

首选休息参数的打字稿ESLint错误

来自分类Dev

打字稿中的条件类型参数

来自分类Dev

打字稿可选参数使用前检查

来自分类Dev

打字稿:过滤出剩余参数

来自分类Dev

提取打字稿中的通用参数

来自分类Dev

打字稿装饰器参数

来自分类Dev

Axios使用重复的参数打字稿

来自分类Dev

使用打字稿使AMD成为可选件

来自分类Dev

打字稿:装饰构造函数的公共参数?

来自分类Dev

打字稿多类型参数

来自分类Dev

打字稿,参数的类型被绕过

来自分类Dev

我如何在打字稿中使用默认和可选参数调用函数

来自分类Dev

打字稿:如果派生类中没有传递值,如何设置可选参数?

来自分类Dev

打字稿函数参数