[英]Typescript Type Assertion
假設我有一個包含許多變量的接口,並且在使用它時我不想初始化所有變量,所以我只需要放置any
類型的斷言。 我只想知道這兩個是否相同:
例如:
export interface Foo {
a: string;
b: number;
c: Bar[];
d: string;
e: Bar;
}
是
let foo: Foo = {} as any;
與...相同
let foo: Foo | any = {};
?
不,他們不一樣。
以下是更安全的方法:
let foo: Foo = {} as any;
你做不到
let foo: Foo = {} as any;
foo = {}; // Error
以下內容使您面臨危險,例如
let foo: Foo | any = {};
foo = {}; // OKAY!
她們不一樣。 您必須查看編譯器如何分解每個語句。
所以
| 1 | 2 |3| 4 |5| 4 | 5 | 6
let foo : Foo = {} as any;
let foo : Foo | any = {};
因此,第一個語句不允許 any
為類型(4),用於存儲在變量(2),其中所述第二個確實的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.