typescript - 如何在 Typescript 中引用工厂创建类的实例?找不到名字错误

标签 typescript

Typescript 无法引用工厂创建的类。 这是一个示例代码:

// factory.ts
export const createClass = () =>
  class Model {
    // ...
  }

// ModelA.ts
import {createClass} from './factory';

export const ModelA = createClass();

let a: ModelA; // Cannot find name 'ModelA';

// other.ts
import {ModelA} from './ModelA';
new ModelA() // Cannot find name 'ModelA';

我在这里做错了什么?

最佳答案

如果您正在尝试获取函数生成的类的保险类型,那么您可以使用 InstanceType 条件类型。

export const createClass = () =>
class Model {
    // ...
}


export const ModelA = createClass();
type ModelA = InstanceType<typeof ModelA>
let a: ModelA = new ModelA(); // ok

关于typescript - 如何在 Typescript 中引用工厂创建类的实例?找不到名字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51454166/

相关文章:

javascript - 是否有从对象渲染组件的方法? - react

typescript - 键入两个对象以确保它们不共享任何 key

javascript - Safari 对日期时间字符串的解释与 Chrome 不同

Javascript:如何在不创建循环依赖的情况下重用创建子实例的方法

javascript - 警报不是功能错误是控制台

javascript - 是否可以在 Typescript 中实现两个签名之一?

angular - 类型错误 : Cannot read property 'forEach' of undefined

typescript - 使用 typescript 在 angular2 上的类中使用输入

typescript - 使用 firebase 云功能在特定时间发送 FCM 通知

javascript - 如何定义同名的 Typescript 构造函数和工厂函数?