打字稿:声明与另一个类型相同的变量

时间:2019-10-11 13:21:56

标签: typescript

有没有办法用另一个变量的类型声明一个变量?例如,我声明一个具有某种类型的类成员,然后稍后我想在相同类型的函数中声明另一个变量。但是我不想修改原始声明,也不想重复它。看来您应该可以执行以下操作:

class Foo {
    bar: {[key: string]: string[]};

    func() {
        const x: TypeOf<Foo.bar> = {};
        ....
    }
}

我听说过专门针对函数的返回类型的类似内容,但是我再也找不到了...

1 个答案:

答案 0 :(得分:1)

您可以使用typeof,但在上课时,您应该使用属性:

class Foo {
    bar: {[key: string]: string[]};

    func() {
        const x: typeof Foo.prototype.bar = {};
        // here x has type `{[key: string]: string[]}`
    }
}

还有课外的另一个例子:

class A {
    b: string = ''
}

type test = typeof A.prototype.b // type is `string`

PlayGround