显式类型注释与“as”关键字

Adi*_*rve 2 typescript

const names: string[] = [];
const names = [] as string[];
Run Code Online (Sandbox Code Playgroud)

在 TypeScript 中,上面两个语句之间是否存在语义差异?如果是这样,我们什么时候更喜欢一个而不是另一个?

Nur*_*yev 5

这很简单:

  • 如果您希望新变量属于该类型,请使用类型注释。
  • as如果您想告诉编译器某个表达式具有某种特定类型(即使它不是真的),请使用类型断言(关键字)。