假设我有一个包含许多变量的接口,并且在使用它时我不想初始化所有变量,所以我只放置了any
类型的断言。我只想知道这两个是否相同:
例如:
export interface Foo {
a: string;
b: number;
c: Bar[];
d: string;
e: Bar;
}
是
let foo: Foo = {} as any;
与
相同let foo: Foo | any = {};
?
答案 0 :(得分:1)
不。它们不一样。
以下内容更安全:
let foo: Foo = {} as any;
你不能做
let foo: Foo = {} as any;
foo = {}; // Error
以下内容使您面临危险,例如
let foo: Foo | any = {};
foo = {}; // OKAY!
答案 1 :(得分:1)
它们不一样。您必须查看编译器如何分解每个语句。
所以
| 1 | 2 |3| 4 |5| 4 | 5 | 6
let foo : Foo = {} as any;
let foo : Foo | any = {};
因此,第一条语句 not 不允许any
作为存储在变量(2)中的值的> df
# A tibble: 55 x 2
datetime Freq
<dttm> <int>
1 2018-11-01 12:41:57 215
2 2018-11-01 12:41:58 163
3 2018-11-01 12:47:06 225
4 2018-11-01 12:51:00 69
5 2018-11-01 12:57:37 203
6 2018-11-01 12:57:38 248
7 2018-11-01 12:57:38 58
8 2018-11-01 13:29:15 179
9 2018-11-01 13:37:45 233
10 2018-11-01 14:24:43 150
# ... with 45 more rows
作为类型(4),