TypeScript 严格的空值检查无法识别对象中的已评估键,

mfpqipee  于 4个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(119)

TypeScript版本: 2.3.2
代码

这个版本在使用strictNullChecks时出错

export interface Opts {
    params?: { [s: string]: string };
}

let token;
let options: Opts = { params: {} };

if (token) {
    options.params["access_token"] = token;
}

这个版本在使用strictNullChecks时不会出现错误

export interface Opts {
    params?: { [s: string]: string };
}

let token;
let options: Opts = {};

options.params = {};

if (token) {
    options.params["access_token"] = token;
}

预期行为:

TS应该识别到params已经在对象中设置,就像它已经使用不同格式的方法初始化变量一样。

实际行为:

TS无法识别到params已经被设置。

mcvgt66p

mcvgt66p1#

我相信我们还有一个问题在追踪这个,但是找不到。无论如何,我们需要解决这个问题。

相关问题