我正在将一个名为shiitake的React组件从npm导入到我的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] 找不到模块“shiitake”的声明文件。'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js'隐式具有“any”类型。
获取此类型模块的声明文件的标准方法是通过@types/
方式,这种方法有效。但是,我无法让自定义类型起作用。有什么想法吗?