小编Mar*_*ark的帖子

根据可选参数指定返回类型

function f<T>(defaultValue?: T) { return defaultValue; }

const definitelyUndefined = f<string>();      // type: string | undefined
const definitelyString = f<string>('foobar'); // type: string | undefined
Run Code Online (Sandbox Code Playgroud)

是否有可能定义f(),使得definitelyUndefined隐式undefineddefinitelyString隐式string

背景

我的真实用例是我正在使用并希望改进的功能。它是function f<T>(o: { [key: string]: T }, key: string, defaultValue?: T)key[o]如果存在则返回,否则返回defaultValue。当我提供它时defaultValue,我保证会T回来,但 Typescript 认为它是T | undefined

typescript

2
推荐指数
1
解决办法
719
查看次数

标签 统计

typescript ×1