迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

TypeScript 中的 as 关键字

作者:迹忆客 最近更新:2023/03/12 浏览次数:

当对象的类型已知但编译器不知道时,可以在这些情况下使用 as 关键字来执行类型断言以将所需的类型与对象相关联。

它是一个 TypeScript 结构,不会影响转编译 JavaScript 代码。

在 TypeScript 中使用 as 关键字转换类型

as 关键字可以转换一个类型,该类型可以是预期类型的​​更具体或更不具体的版本。

interface User {
    name : string
    id : number
}

function getUser(){
    let username : string = "Geralt";
    return {
        name : username, 
        id : 1
    };
}

let user  = getUser() as User;

通过这种方式,我们强制编译器将 user 对象与 User 类型相关联,以获得更强大的自动完成和建议,从而带来更好的开发体验。

另一个用例是初始化数组或稍后填充的空对象。

let user : User = {} as User;

let userArray : User[] = [] as User[];

如果没有 as 关键字,TypeScript 会抱怨 {}[] 不匹配类型或缺少某些属性。

在 TypeScript 的类型谓词中使用 as 关键字

as 关键字在类型谓词中。类型谓词用作无类型对象或具有弱类型的对象的类型保护,例如两个或多个类型的联合。

interface Dog {
    bark() : void;
}

interface Cat {
    meow() : void;
}

function DogOrCat() : Dog | Cat {
    let dog : Dog = {
        bark(){
            console.log("bark");
        }
    };
    return dog;
}

function isDog( animal : Dog | Cat ) : animal is Dog {
    return ( animal as Dog).bark !== undefined;
}

let animal = DogOrCat();
if (isDog(animal)){
    (animal as Dog).bark()
}

animal is Dog 用作类型谓词。

这样,as 关键字可以用作类型保护和其他方式,例如 in 键盘。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便