将数组指定为元组

Specify array as a tuple

比如我有一个摘要class:

type Tuple = [string, number]

abstract class SomeAbstractClass {
    tuples: Tuple[]
}

但是当我想实现这个的时候class

class SomeConcreteClass implements SomeAbstractClass {
    public tuples = [
        ['hello', 3],
        ['world', 4]
    ]
}

我收到错误“(string | number)[][] is not assignable to Tuple[]”。 如何告诉Typescript我提供的数组实际上满足接口?

只需使用显式类型:

type Tuple = [string, number]

abstract class SomeAbstractClass {
    tuples: Tuple[] = null as any
}

class SomeConcreteClass implements SomeAbstractClass {
    public tuples: Tuple[] = [
        ['hello', 3],
        ['world', 4]
    ]
}

SomeConcreteClass tuples 属性 是可变的,因此 TypeScript 不确定它是否可分配给抽象 class 元组