将导出的类用作.d.ts中的类型

时间:2017-11-14 14:32:40

标签: typescript

我有./class1.ts./class2.ts,它们都是这样的:

export class Class1{ ... }

export class Class2{ ... }

./run.ts中,我有一个接受类输入的函数

function doSomething(klass: ClassType){
    let foo = new klass()
}

./typings.d.ts我有:

type ClassType = Class1 | Class2

我在typings.d.ts中收到错误消息,指出无法找到Class1Class2

添加

/// <reference path="./class1.ts" />

不会导致错误,但无法解决问题。

添加

import {Class1} from './class1.ts'

修复了./typings.d.ts中的问题,但它导致我的所有输入在项目中无法使用。

如何在项目中将导出的类用作类型?

1 个答案:

答案 0 :(得分:0)

将typings.d.ts更改为typings.ts,内容为:

import { Class1 } from './class1'
import { Class2 } from './class2'

export type ClassType = Class1 | Class2

和run.ts到

import { ClassType } from './typings'

function doSomething(klass: ClassType) {
    let foo = new klass()
}

import / export/// <reference path="..." />是两种不同的加载概念,您不应该将它们混合在一起。