gpt4 book ai didi

javascript - 类型声明适用于对象文字,但不适用于类实现

转载 作者:搜寻专家 更新时间:2023-10-30 20:43:06 25 4
gpt4 key购买 nike

我想要一个类型来表示一个坐标。我已应用于接口(interface)的类型适用于对象而非类。

type ICoord = [number, number]

type MyInterface = {
a: ICoord
}

var obj: MyInterface = { // works
a: [0, 0]
}

class C implements MyInterface { // gets below compilation error
a = [0, 0]
}

Property 'a' in type 'C' is not assignable to the same property in base type 'MyInterface'.
Type 'number[]' is missing the following properties from type '[number, number]': 0, 1

为什么我不能将 [0, 0] 分配给 a

[TypeScript Playground]

最佳答案

a 的类型被推断为 number[],它不能分配给元组 [number, number]。将 a 的类型显式定义为 ICoord 似乎可行:

type ICoord = [number, number];

type MyInterface = {
a: ICoord;
}

class C implements MyInterface {
a: ICoord = [0, 0];
}

TypeScript Playground

关于javascript - 类型声明适用于对象文字,但不适用于类实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com