接口中的typescript变量是否可以声明为a或B类型
我们正在设置类构造函数,以获取复制构造函数的类接口。所以基本上:接口中的typescript变量是否可以声明为a或B类型,typescript,Typescript,我们正在设置类构造函数,以获取复制构造函数的类接口。所以基本上: interface IPoint { var x : number; var y : number; } class Point implements IPoint { var x : number; var y : number; constructor (src : IPoint) { this.x = src.x; this.y = src.y;
interface IPoint {
var x : number;
var y : number;
}
class Point implements IPoint {
var x : number;
var y : number;
constructor (src : IPoint) {
this.x = src.x;
this.y = src.y;
}
public getTotal() : number {
return x + y;
}
}
我们之所以这样做,是因为我们从REST服务器以JSON的形式获取这些对象,并且还将这些对象传递给web工作者。在这些情况下,我们接收的对象是接口,我们有数据,但没有方法。无论是从完整对象创建一个复制构造函数,还是仅从JSON创建一个复制构造函数,复制构造函数都非常有效
但我们遇到了以下情况的问题:
interface IPoint {
var coordinates : (List or number[])
}
class Point implements IPoint {
var coordinates : List
constructor (src : IPoint) {
// do an isArray() to initialize
}
public getTotal() : number {
return // sum of all coordinates in the list
}
}
当我们从JSON获取对象时,坐标是一个数组。在对象中,它是一个列表(来自collections.ts)
我们目前正在界面中定义“坐标:any”,它确实起作用。但它确实应该始终是两种类型中的一种。有没有办法这样声明?在运行时这样做没有什么区别,但它确实有助于更好的类型检查。我的建议是为坐标(列表或数字[])定义一个集合类型,并确保构造函数可以接受其中一种,然后将任何输入转换为您需要的类型。我的建议是为坐标定义一个集合类型(列表或数字[]),并确保构造函数可以接受其中一种,然后将任何输入转换为您需要的类型。我的建议是为坐标定义一个集合类型(列表或数字[]),并确保构造函数可以接受其中一种,然后将任何输入转换为您需要的类型。我的建议是为坐标定义一个集合类型(列表或数字[]),并确保构造函数可以接受任何一种,然后将任何输入转换为您需要的类型。,假设
List
支持[]
运算符,则可以执行以下操作:
interface IIndexable<T> {
[index: number]: T
}
interface IPoint {
coordinates : IIndexable<number>
}
接口IIndexable{
[索引:编号]:T
}
接口IPoint{
坐标:IIndexable
}
好吧,假设List
支持[]
操作符,您可以这样做:
interface IIndexable<T> {
[index: number]: T
}
interface IPoint {
coordinates : IIndexable<number>
}
接口IIndexable{
[索引:编号]:T
}
接口IPoint{
坐标:IIndexable
}
好吧,假设List
支持[]
操作符,您可以这样做:
interface IIndexable<T> {
[index: number]: T
}
interface IPoint {
coordinates : IIndexable<number>
}
接口IIndexable{
[索引:编号]:T
}
接口IPoint{
坐标:IIndexable
}
好吧,假设List
支持[]
操作符,您可以这样做:
interface IIndexable<T> {
[index: number]: T
}
interface IPoint {
coordinates : IIndexable<number>
}
接口IIndexable{
[索引:编号]:T
}
接口IPoint{
坐标:IIndexable
}
但它确实应该始终是两种类型中的一种
联合类型仍需在typescript中实现
如您所知,您可以使用任意
,也可以使用两个不同类型的变量并进行适当的赋值
但它确实应该始终是两种类型中的一种
联合类型仍需在typescript中实现
如您所知,您可以使用任意
,也可以使用两个不同类型的变量并进行适当的赋值
但它确实应该始终是两种类型中的一种
联合类型仍需在typescript中实现
如您所知,您可以使用任意
,也可以使用两个不同类型的变量并进行适当的赋值
但它确实应该始终是两种类型中的一种
联合类型仍需在typescript中实现
如您所知,您可以使用
任意
,也可以使用两个不同类型的变量并进行适当的赋值 typescript中没有运算符重载。(应该有,但没有)我没有说操作符可以重载,我说你可以围绕它构建一个接口。例如,Array
具有上述接口。请参阅第3.7.4节,typescript中没有运算符重载。(应该有,但没有)我没有说操作符可以重载,我说你可以围绕它构建一个接口。例如,Array
具有上述接口。请参阅第3.7.4节,typescript中没有运算符重载。(应该有,但没有)我没有说操作符可以重载,我说你可以围绕它构建一个接口。例如,Array
具有上述接口。请参阅第3.7.4节,typescript中没有运算符重载。(应该有,但没有)我没有说操作符可以重载,我说你可以围绕它构建一个接口。例如,Array
具有上述接口。请参见第3.7.4节