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

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

TypeScript版本: 2.3.2
代码

这个版本在使用strictNullChecks时出错

  1. export interface Opts {
  2. params?: { [s: string]: string };
  3. }
  4. let token;
  5. let options: Opts = { params: {} };
  6. if (token) {
  7. options.params["access_token"] = token;
  8. }

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

  1. export interface Opts {
  2. params?: { [s: string]: string };
  3. }
  4. let token;
  5. let options: Opts = {};
  6. options.params = {};
  7. if (token) {
  8. options.params["access_token"] = token;
  9. }

预期行为:

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

实际行为:

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

mcvgt66p

mcvgt66p1#

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

相关问题