Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型脚本类型断言_Typescript_Type Assertion - Fatal编程技术网

Typescript 类型脚本类型断言

Typescript 类型脚本类型断言,typescript,type-assertion,Typescript,Type Assertion,假设我有一个包含许多变量的接口,并且我不想在使用它时初始化所有变量,所以我只把any类型断言放在这里。我只是想知道这两者是否相同: 例如: 是 同 let foo: Foo | any = {}; 不,它们不一样 弗斯特 以下情况更安全: let foo: Foo = {} as any; 你做不到 let foo: Foo = {} as any; foo = {}; // Error 第二 以下情况会使您面临危险,例如: let foo: Foo | any = {}; foo =

假设我有一个包含许多变量的接口,并且我不想在使用它时初始化所有变量,所以我只把
any
类型断言放在这里。我只是想知道这两者是否相同:

例如:

let foo: Foo | any = {};

不,它们不一样

弗斯特 以下情况更安全:

let foo: Foo = {} as any;
你做不到

let foo: Foo = {} as any;
foo = {}; // Error  
第二 以下情况会使您面临危险,例如:

let foo: Foo | any = {};
foo = {}; // OKAY!

不,它们不一样

弗斯特 以下情况更安全:

let foo: Foo = {} as any;
你做不到

let foo: Foo = {} as any;
foo = {}; // Error  
第二 以下情况会使您面临危险,例如:

let foo: Foo | any = {};
foo = {}; // OKAY!

它们不一样。您必须了解编译器将如何分解每条语句

  • 声明
  • 变量名
  • 类型声明符
  • 声明类型
  • 指定符号
  • 价值观
  • 铸造操作工
  • 铸造类型
  • 所以


    因此,第一条语句不允许将
    any
    作为存储在变量(2)中的值的类型(4),而第二条语句则不允许。您必须了解编译器将如何分解每条语句

  • 声明
  • 变量名
  • 类型声明符
  • 声明类型
  • 指定符号
  • 价值观
  • 铸造操作工
  • 铸造类型
  • 所以

    因此,第一条语句不允许将
    any
    作为存储在变量(2)中的值的类型(4),而第二条语句则不允许