首页 > 解决方案 > 如何使用局部变量引用类实例?

问题描述

class A {
    x = 1;
};

let B = A;

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

[at-loader] ./src/syntax/colletion-range.ts:10:18 TS2749 中的错误:“B”指的是一个值,但在此处用作类型。

标签: typescript

解决方案


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

您也可以定义类型:

let B = A;
type B = A;

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

class A {
    x = 1;
};

let B = A;

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

推荐阅读