声明具有相同类型的多个TypeScript变量

Mat*_*ino 43 typescript

我正在编写一个大型的TypeScript类,我将noImplicitAny设置为true.有没有办法在同一行上声明相同类型的多个变量?

我想将x和y声明为数字,例如"x,y:number".但是编译器不喜欢那个或者我尝试过的任何其他东西.有没有更好的替代"x:number; y:number"?

Rya*_*ugh 54

没有任何语法能够以更好的方式完成此任务,而不仅仅是编写类型两次.

  • 谢谢.真是太遗憾了.对于具有大量变量的Web组件,在单独的行上声明每个变量是一件痛苦的事.对于基于表单的组件尤其如此. (23认同)

Ven*_*ndi 19

是的,您可以像这样:-)

public AcccountNumber: number;public branchCode:number;

请不要低估我的幽默感:-)


小智 11

您必须指定每个变量的类型:

let x: number, y: number
Run Code Online (Sandbox Code Playgroud)


Won*_*Hau 8

这个怎么样?将数组解构与 Typescript 的数组类型一起使用

let [x,y]: number[]
Run Code Online (Sandbox Code Playgroud)

但是请注意,如果您不打开迂腐的索引签名检查,此功能是不安全的。例如,下面的代码不会有编译错误,即使它应该:

let [x, y]: number[] = [1]
console.log(x.toString()) // No problem
console.log(y.toString()) // No compile error, but boom during runtime 
Run Code Online (Sandbox Code Playgroud)


Fil*_*lip 6

即使您执行以下操作,也只需添加:

let notes, signatureTypeName: string;
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。在这种情况下,notes 声明为 any 类型,signatureTypeName 声明为 string 类型。您可以通过简单地将鼠标悬停在变量上来验证所有这些,例如在 Visual Studio Code 中。声明的类型随后出现在弹出窗口中。