javascript-为什么我在打字稿中没有收到有关StrictNullChecks的警告

我在打字稿中有以下代码:

interface Member {
    name: string,
    age?: number
}

class Person implements Member {
    name: string;
    constructor(name: string ){
        this.name=name;
    }
}

function bar(person: Member) {
    return "Hello, " + person.name + " " + person.age;
}

let person = new Person("John");
console.log(bar(person));

当我声明person.age时,我应该得到对象函数可能在bar函数内发出“未定义”警告,因为并非每个会员都可以年龄.

我的打字稿配置看起来像这样:

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true,
    "strictNullChecks": true,
    "outDir": "./built"
  },
  "include": [
    "./src/**/*"
  ],
  "exclude": [
    "node_modules"
  ]
}

知道为什么这对我不起作用吗?我正在使用WebStorm编辑器!

解决方法:

strictNullChecks检查对属性执行的所有操作是否导致非空值.但是在bar函数中,它仅打印person.age,无论它是否为null或未定义.如果要说person.age.toString(),打字稿会抛出编译时错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐