登录
注册
node.js 学习社区
新手请问关于strictNullChecks的问题

一个棱

2017-09-09 11:13

小弟初学nodejs,用ts脚本,strictNullChecks这个编译选项很有用处的。

但是碰到一个问题,就是一个函数要返回对象的话,一般可能是为null的,

  • 如果不开启选项,这段代码是可以编译通过的,但是开启后是无法通过。

class CUser{ }
function findUser(uid : number) : CUser
{
    if(uid > 0) // TODO
        return new CUser();
    return null;
}
function showUserInfo(user : CUser) : void
{
    // ...
}
let user : CUser = findUser(-1);
showUserInfo(user);

  • 如果开启,为了能编译通过,则需要修改为如下:

class CUser{ }
function findUser(uid : number) : CUser | null
{
    if(uid > 0) // TODO
        return new CUser();
    return null;
}
function showUserInfo(user : CUser | null) : void
{
    // ...
}
let user : CUser | null = findUser(-1);
showUserInfo(user);
    也就是说每个地方都需要加个null,感觉这样就比较麻烦了。所以是否有个比较简单的方式,既保留了这个编译选项的好处,但又可以不需要这么多的null呢?谢谢各位。





回复 · 0

发表回复

你可以在回复中 @ 其他人