我try 将一个数组重新映射到另一个数组,结果发现direct remap
和generic remap
是不同的.
generic remap
按预期工作,而direct remap
保留了一些来自数组类的属性,这是意想不到的.
type Input = [string, number, boolean]
// Generic remap as expected
type Remap<T> = { [I in keyof T]: T[I] }
type Output1 = Remap<Input>
// type Output1 = [string, number, boolean].
// Direct remap but unexpected
type Output2 = { [I in keyof Input]: Input[I] }
/* type Output2 = {
[x: number]: string | number | boolean;
0: string;
1: number;
2: boolean;
length: 3;
toString: () => string;
toLocaleString: () => string;
pop: () => string | number | boolean | undefined;
push: (...items: (string | ... 1 more ... | boolean)[]) => number;
... 26 more ...;
readonly [Symbol.unscopables]: {
...;
};
} */
有没有可能在没有Array类属性的情况下直接重映射?