首页 > 解决方案 > Typescript 使用导入生成定义文件,导致错误

问题描述

有时 typescript 会使用以下代码生成定义文件,这会导致编译错误:

// test.ts
import { Subject } from 'rxjs';

class Test {
  get property() {
    return new Subject().asObservable();
  }
}

// test.d.ts
class Test {
  property: import("rxjs").Observable<any>;
}

为什么会发生这种情况,我怎样才能捕捉到这些类型的错误?

标签: typescriptrxjs

解决方案


import("rxjs").Observable<any>;是有效的语法,如果你是在2.9或以上构建。import如果您有一个由较新版本的打字稿(使用类型语法)生成的定义并尝试在旧版本中使用它,则通常会出现此语法的问题。

正如我们在评论中讨论的那样,这确实是您遇到的问题。解决方案是在库中使用与应用程序中相同版本的 TS。


推荐阅读