Microsoft/TypeScript

Typescript does not recognize function Boolean() as a check for undefined

Open

#24.063 aperta il 11 mag 2018

Vedi su GitHub
 (1 commento) (17 reazioni) (0 assegnatari)TypeScript (6726 fork)batch import
Help WantedSuggestion

Metriche repository

Star
 (48.455 star)
Metriche merge PR
 (Merge medio 6g 17h) (9 PR mergiate in 30 g)

Descrizione

I followed the submission guidelines.

I prefer to check for a defined object using Boolean(object) rather than !!object, which I consider bad style. Typescript linter recognizes !! as a check for undefined but does not recognize Boolean() as a check for undefined.

I could not find a tsconfig or tslint configuration setting related to this behavior.

2.9.0-dev.20180511 (typescript@next)

"Boolean" "Boolean(" "function Boolean"

Code This is not production code but a simple demonstration only to satisfy the expression tree.

function booleanTest() {
    let value: Array<object> | undefined = undefined;

    if (Date.now() > 1) {
        value = [{}];
    }

    if (Boolean(value)) {
        console.log(value.length);
    }
}

Expected behavior: No Typescript linter errors

Actual behavior: Typescript linter in VS Code displays an error "[ts] Object is possibly 'undefined'." with a red squiggly on the final reference to variable "value".

Playground Link:

Guida contributor