【发布时间】:2017-07-30 08:22:51
【问题描述】:
我正在使用来自 npm 的名为 shiitake 的 React 组件到我使用 TypeScript 的项目中。该库没有 TypeScript 声明,所以我想我会写一个。声明文件如下(可能不完整但不要太担心):
import * as React from 'react';
declare module 'shiitake' {
export interface ShiitakeProps {
lines: number;
}
export default class Shiitake extends React.Component<ShiitakeProps, any> {
}
}
我已将其放入 ./typings/shiitake.d.ts 文件和 VS Code 中,我看到以下错误:
[ts] 扩充中的模块名称无效。模块 'shiitake' 解析为 'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js' 处的无类型模块,无法扩充。
在消费方面,即使使用上述声明,我仍然会遇到同样的错误(因为我打开了noImplicitAny 编译器开关):
/// <reference path="../../../../typings/shiitake.d.ts" />
import * as React from 'react';
import Shiitake from 'shiitake';
[ts] 找不到模块“香菇”的声明文件。 'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js' 隐含了一个 'any' 类型。
获取此类模块的声明文件的标准原因是通过@types/ way,并且效果很好。但是,我无法让自定义类型工作。有什么想法吗?
【问题讨论】:
标签: reactjs typescript ecmascript-6 visual-studio-code typescript2.0