Typescript正在生成带有语法错误的定义文件,但仅在某些情况下才会发生。我想了解原因以及如何解决。
产生的错误是
TS1005:“>”。
Typescript(.d.ts)中的声明
import {O} from 'moduleO'
import {E} from 'moduleE'
…
export declare type MyResult<T> = O<E<T>>;
moduleO / O.d.ts
export declare class O<T> { … }
@ types / moduleE / index.d.ts
declare module 'moduleE' {
export interface E<T> { … }
用法(.ts文件)
import {MyResult} from '@org/my-module'
export interface I {
f(): MyResult<any>
}
const myFunc = (): MyResult<any> => …
生成的.d.ts文件供我使用:
/// <reference path="../../../../../../../../node_modules/@types/moduleE/dist/index.d.ts" />
import {MyResult} from '@org/my-module'
import {O} from 'moduleO'
export interface I {
f(): MyResult<any>
}
declare const myFunc: () => O<'moduleE'.E<any>>;
很明显,语法错误是有效的。但是为什么打字稿会生成这种奇怪的情况,并且仅针对函数?我在哪里可以看到会引起这种行为的环境?
我也在monorepo里面,这可能会增加模型解析的问题。
版本:
"typescript": "2.9.1",
"webpack": "3.10.0",
"ts-loader": "3.3.1",