繁体   English   中英

TypeScript的最佳实践是什么?

[英]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

  1. Array<any>any[]是等效的,并且是任何东西的数组(不是对项目进行类型检查,如果可以的话,最好避免使用它们)
  2. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM