![](/img/trans.png)
[英]What's the best practice to make Meteor, Webstorm and Typescript work together?
[英]What is best practice for TypeScript?
如果有问题,我可以使用函数数组,例如:
this._array = [handler, func, type]
我需要如何声明此私有财产:
1. Array<any>
2. any[]
3. T[]
4. Array<T>
这个声明有什么区别?
还有一些问题:
this._array.push(()=>{ console.log("hey")})
我如何定义类型函数?
如果您不知道数组中可以包含哪些类型,请使用any[]
,这是不希望的。 我建议您将代码重构为具有相同类型的数组。
1) Array<any>
-接受任何东西。
2) any[]
-与上面的相同。
console.log([].constructor); console.log((new Array()).constructor);
3) T[]
仅包含类型为T
元素。 可用于通用
4) Array<T>
与上述相同。
说你有一堂课
class SomeClass<T> {
items: Array<T>;
}
const numbers = new SomeClass<number>();
const strings = new SomeClass<string>();
对于数字,项目将为number[]
类型;对于字符串,项目将为string[]
。 从对象创建语句中的<T>
将替换T
的类型。
像JavaScript一样,TypeScript允许您使用值数组。 数组类型可以用以下两种方法之一编写。 首先,您使用元素的类型,然后使用[]
表示该元素类型的数组:
let list: number[] = [1, 2, 3];
第二种方法使用通用数组类型Array<elemType>:
let list: Array<number> = [1, 2, 3];
更多内容请参见: https : //www.typescriptlang.org/docs/handbook/basic-types.html
Array<any>
和any[]
是等效的,并且是任何东西的数组(不是对项目进行类型检查,如果可以的话,最好避免使用它们) T[]
和Array<T>
是等效的,并且是给定类型T
数组,因此您将对它们进行编译类型检查。 如果您需要存储[handler, func, type]
:
let arrary: Array<(param:number) => void> = []
使用此版本,将检查推送的项目以符合您的处理程序签名。
您可以使用元组而不是数组,例如:
private _array: [any, () => void, string];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.