如果遇到问题,我有带函数的数组,比如:
this._array = [handler, func, type]
我需要如何声明这个私有(private)属性:
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
的元素.可用于 Generic
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 的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46194398/