【发布时间】:2017-02-15 16:18:42
【问题描述】:
我正在尝试在 typescript 中创建以下界面:
type MoveSpeed = "min" | "road" | "full";
interface Interval {
min?: number,
max?: number
}
interface CreepPlan {
[partName: string] : Interval;
move?: MoveSpeed;
}
但是,此语法无效。编译器说Property 'move' of type '"min" | "road" | "full" | undefined' is not assignable to string index type 'Interval'.。
我正在使用编译器选项 strictNullChecks:true,这就是为什么 undefined 隐式包含在 move? 键中。
但是,这个语法是有效的:
type MoveSpeed = "min" | "road" | "full";
interface Interval {
min?: number,
max?: number
}
interface CreepPlan {
[partName: string] : Interval;
move: MoveSpeed; // 'move' is required
}
我想表达“CreepPlan 由 string:Interval 对组成的想法,除了可选的 'move' 键是一个 string:MoveSpeed 对。”可以用打字稿来表达吗?
【问题讨论】:
-
我认为问题可能在于您在哪里(以及如何)使用该代码,而不是代码本身,因为您的示例编译时没有错误
-
@ssube 抱歉,我正在使用
strictNullChecks设置为 true。我会澄清的。
标签: typescript