as 关键字用法

配合export使用

有时候想把一些插件导出,或者不想直接暴露方法、变量名称,那就可以通过as 重命名。

// xxx.js 代码如下:

const identity = () => {
    
     }

export {
    
     identity as myIdentity }

// dayjs 插件
export {
    
     default as myDayjs } from 'dayjs'

// util 是一个对象
export * as util from './utils'

在页面中引用上面方法:

// util 对象
import {
    
     myIdentity, myDayjs, util } from 'xxxx'

配合import使用

在页面中使用import导入方法的时候,有时候可能会跟你页面自己的定义的方法或变量名相同,那这时候就可以用as重命名。

// xxx.js 代码如下:

export const num: number = 1

export const arr: number[] = [1,2,3]

在页面中使用:

import {
    
     num as myNum, arr as myArr } from 'xxxx'

在TypeScript中使用,as 类型断言

有时候你会遇到这样的情况,你会比TypeScript更了解某个值的详细信息。 通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。

例如,如果您使用document.getElementById,TypeScript 只知道这将返回某种类型的HTMLElement,但您可能知道您的页面将始终具有指定IDHTMLCanvasElement类型。

在这种情况下,您可以使用类型断言来指定更具体的类型:

const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;

类型断言好比其它语言里的类型转换,但是不进行特殊的数据检查和解构。

类型断言有两种形式:

1、 “尖括号” 语法

let someValue: any = "this is a string";

let strLength: number = (<string>someValue).length;

2、as 语法

扫描二维码关注公众号,回复: 15672684 查看本文章
let someValue: any = "this is a string";

let strLength: number = (someValue as string).length;

ps:两种形式是等价的,当你在TypeScript里使用JSX时,只有 as 语法断言是被允许的。 所以这里建议使用 as 语法

猜你喜欢

转载自blog.csdn.net/Kevin_xq/article/details/128977993