What is the type assertion operator for in TypeScript?

前端 未结 3 2016
野性不改
野性不改 2020-12-20 15:09

The spec doesn\'t say much about where the type assertion operator might be helpful in TypeScript. I didn\'t need it in my code. So I am curious what sort of problems it is

3条回答
  •  孤城傲影
    2020-12-20 15:52

    There are two forms of Typescript type assertions. Examples from the Typescript handbook here.

    1. Angle bracket syntax for type assertions (doesn't work within a tsx file):
    let strLength: number = (someValue).length;
    
    1. as syntax for type assertions (works within ts or tsx alike):
    let strLength: number = (someValue as string).length;
    

    Type assertions override the (limited) type inference capabilities of the ever current version of Typescript, which can be a good thing if you are correct, but there is also a risk that your judgment is incorrect and TS will believe you. If there's a likely mismatch between what you infer and what TS infers, TS will still balk, then you can more strongly overrule the TS inference by as unknown as string.

提交回复
热议问题