javascript - 生成的定义中的打字稿语法错误
问题描述
Typescript 正在生成一个带有语法错误的定义文件,但仅在某一特定事件中出现。我想了解为什么,以及如何解决它。
产生的错误是
TS1005:“>”应为。
Typescript 中的声明 (.d.ts)
import {O} from 'moduleO'
import {E} from 'moduleE'
…
export declare type MyResult<T> = O<E<T>>;
模块O/Odts
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 中,这可能会增加模型分辨率的问题。
- 为什么它解析类型而不是按原样使用它?它甚至被进口
- moduleE 解析失败的原因可能是什么?
- 为什么只针对第二种情况,而不是在界面内部?我该如何改写该功能才能工作?
版本:
"typescript": "2.9.1",
"webpack": "3.10.0",
"ts-loader": "3.3.1",
解决方案
推荐阅读
- java - @JoinColumnS 涉及以一对一关系获取 EAGER
- pyspark - 在决策树分类器上拟合 RDD 数据时出错
- python - 从熊猫数据框中删除大量列
- objective-c - 为什么我会根据字符串构造或在不同环境中运行时获得不同的 NSString UTF-8 表示?
- c - 如何创建一个包含指向另一个未指定类型的结构的指针的结构?
- python-3.x - Tkinter Mac 应用程序无法正常工作
- android - 将聊天气泡对齐到 RecyclerView 的左侧
- javascript - 随机连接四个游戏,每列不放置第一个冰球
- javascript - ServiceWorkerRegistration#installing 重复访问的值?
- android - 如何将 YAML 样式文件加载到 HERE SDK Premium (Android)