【发布时间】:2019-04-23 13:12:19
【问题描述】:
首先我有一个类型定义,使用keyof将所有属性映射到数字
type Numeric<T> = {
[K in keyof T]: number
}
下面是我将使用的一个类。
class Entity {
aNumber: number;
}
下面是一个接受泛型类型参数和类型为Numberic<T> 的局部变量的函数。但是当我分配{ aNumber: 1 } 时,它给出了编译错误。
const fn = <T extends Entity>() => {
const n: Numeric<T> = {
// ^
// Type '{ aNumber: number; }' is not
// assignable to type 'Numeric<T>'
aNumber: 1
};
};
我不知道为什么不能将{ aNumber: number; } 分配给Numeric<T>,因为类型参数T 必须从Entity 扩展而来,并且它必须包含一个名为aNumber 的键。这意味着aNumber 必须是类型 T 的键并且应该能够分配给Numeric<T>。
【问题讨论】:
标签: typescript