我有./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
中收到错误消息,指出无法找到Class1
和Class2
。
添加
/// <reference path="./class1.ts" />
不会导致错误,但无法解决问题。
添加
import {Class1} from './class1.ts'
修复了./typings.d.ts
中的问题,但它导致我的所有输入在项目中无法使用。
如何在项目中将导出的类用作类型?
答案 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="..." />
是两种不同的加载概念,您不应该将它们混合在一起。