使用Typescript'时获取相应的类型;关键是什么?
我想这样做:使用Typescript'时获取相应的类型;关键是什么?,typescript,Typescript,我想这样做: interface StateItem<T extends StateItemType>{ id: string; values: { [key in keyof T]: Provider<corresponding typeof T> } } type Primitive = number | string | Position; interface StateItemType { [key: stri
interface StateItem<T extends StateItemType>{
id: string;
values: {
[key in keyof T]: Provider<corresponding typeof T>
}
}
type Primitive = number | string | Position;
interface StateItemType {
[key: string] : Primitive;
}
interface Mover extends StateItemType {
center: Position;
speed: number;
vector: Position;
accruedVector: Position;
}
const mover : StateItem<Mover> = {
id: "123",
values: {
center: createRandomPosition(),
speed: createRandomNumber(),
vector: createRandomPosition(),
accruedVector: createRandomPosition(),
}
}
接口状态项{
id:字符串;
价值观:{
[key in keyof T]:提供程序
}
}
类型原语=数字|字符串|位置;
接口状态项类型{
[键:字符串]:原语;
}
接口移动器扩展了StateItemType{
中心:位置;
速度:数字;
向量:位置;
累计向量:位置;
}
常量移动器:StateItem={
身份证号码:“123”,
价值观:{
中心:createRandomPosition(),
速度:createRandomNumber(),
向量:createRandomPosition(),
应计向量:createRandomPosition(),
}
}
也就是说,给定一个接口T
,它是一个简单的键:type map,当我创建一个StateItem
时,它的实例必须有一个values
对象,该对象包含所有这些键,以及Provider
实例
我该怎么做 您可以使用以下类型访问
T
中每个键的属性值类型:
interface StateItem<T extends StateItemType>{
id: string;
values: {
[key in keyof T]: Provider<T[key]>>
}
}
希望,这会让事情变得更清楚一点 您可以使用以下类型访问
T
中每个键的属性值类型:
interface StateItem<T extends StateItemType>{
id: string;
values: {
[key in keyof T]: Provider<T[key]>>
}
}
希望,这会让事情变得更清楚一点 不确定,您所说的T的对应类型是什么意思。对于从
值映射的类型中的每个键
,您可以使用T[key]
访问键
的对应值,如值:{[key in keyof T]:Provider}
。这就是你想要的吗?提供者到底是什么?@ford04-是的,我刚刚看到它是有效的。我没有意识到,键
引用会保留到该行的其余部分。如果您喜欢将其作为答案发布,那么准确地解释键
引用是如何保留的将非常有用。不确定您所说的T的对应类型是什么意思。对于值
映射类型中的每个键
,您可以使用T[key]访问键
的对应值
类似值:{[key-in-keyof-T]:Provider}
。这就是你想要的吗?提供者到底是什么?@ford04-是的,我刚刚看到它是有效的。我没有意识到,键
引用会保留到该行的其余部分。如果你喜欢把它作为一个答案,那么准确地解释一下键
引用是如何被保留的,这会很有用。