配合export
使用
有時候想把一些插件導(dǎo)出赴恨,或者不想直接暴露方法、變量名稱伴栓,那就可以通過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
導(dǎo)入方法的時候,有時候可能會跟你頁面自己的定義的方法或變量名相同钳垮,那這時候就可以用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更了解某個值的詳細信息歧焦。 通常這會發(fā)生在你清楚地知道一個實體具有比它現(xiàn)有類型更確切的類型。
例如肚医,如果您使用document.getElementById
倚舀,TypeScript 只知道這將返回某種類型的HTMLElement
,但您可能知道您的頁面將始終具有指定ID
的HTMLCanvasElement
類型忍宋。
在這種情況下,您可以使用類型斷言來指定更具體的類型:
const myCanvas = document.getElementById("main_canvas") as HTMLCanvasElement;
類型斷言好比其它語言里的類型轉(zhuǎn)換风罩,但是不進行特殊的數(shù)據(jù)檢查和解構(gòu)糠排。
類型斷言有兩種形式:
1、 “尖括號” 語法
let someValue: any = "this is a string";
let strLength: number = (<string>someValue).length;
2超升、as
語法
let someValue: any = "this is a string";
let strLength: number = (someValue as string).length;
ps:兩種形式是等價的入宦,當(dāng)你在TypeScript
里使用JSX
時,只有 as
語法斷言是被允許的室琢。 所以這里建議使用 as
語法