在typescript中有一种定义固定大小数组的方法.比方说,例如,在函数定义中,我需要能够说
coord: (c:any) => number[]; //how to say it is an array of size 4
Run Code Online (Sandbox Code Playgroud)
我可以像定义哈希映射一样定义接口
//this doesn't work
interface IArray{
[number]
}
Run Code Online (Sandbox Code Playgroud)
并且还将最大长度限制为4.
R D*_*R D 16
你可以返回一个元组而不是一个数组:
type array_of_4 = [number, number, number, number];
var myFixedLengthArray :array_of_4 = [1,2,3,4];
// the tuple can be used as an array:
console.log(myFixedLengthArray.join(','));
Run Code Online (Sandbox Code Playgroud)
这有点尴尬,但你可以这样做:
interface SizeFour<T> {
0: T;
1: T;
2: T;
3: T;
}
function fn(): SizeFour<string> {
// Need to cast
return <any>['', '', '', ''];
}
var x = fn();
var a = x[0]; // a: string
var b = x[4]; // b: any; error if --noImplicitAny
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7610 次 |
| 最近记录: |