在声明变量时可以使用问号语法吗?

时间:2017-10-22 15:04:44

标签: typescript

创建TypeScript界面​​时,可以通过添加问号(例如

)使条目成为“可选”或type | undefined
interface Foo {
    myProperty?: boolean;
}

在声明变量时有没有办法做到这一点?以下所有内容似乎都不起作用:

let myVar?: boolean;
let myVar: boolean?;
let myVar: boolean = undefined;

1 个答案:

答案 0 :(得分:4)

  

可以通过添加问号

使条目“可选”或type | undefined

您不能对变量使用?语法。

严格空检查

如果 使用严格空检查(strictNullChecks编译器标志),则可以明确允许未定义的值:

let myVar: boolean | undefined;

或nulls:

let myVar: boolean | null;

这将阻止编译器执行的未初始化变量检查,如下所示。

let myVar: boolean;

if (myVar) { // Hey coder! myVar hasn't been assigned!
  console.log('x');
}

如果您没有使用严格的空检查,boolean类型将允许使用普通类型注释进行null和undefined。

let myVar: boolean;