如何用局部变量引用类实例?

时间:2019-05-27 11:15:44

标签: typescript

class A {
    x = 1;
};

let B = A;

function C(arg1: B){
    arg1.x
};

[加载器]中的错误。/src/语法/colletion-range.ts:10:18     TS2749:“ B”指的是一个值,但此处被用作类型。

1 个答案:

答案 0 :(得分:1)

使用变量来别名化类构造函数也不会别名该类型。声明一个类会同时产生一个值(构造函数)和一个类型(该类的实例类型)。

您也可以定义类型:

let B = A;
type B = A;

您还可以使用B获取存储在typeof B中的类的类型,然后使用InstanceType获取实例类型:

class A {
    x = 1;
};

let B = A;

function C(arg1: InstanceType<typeof B>){
    arg1.x
};