我正在加载一个名为sorted-array
的第三方库,并像这样使用它:
import SortedArray from 'sorted-array';
export class Selector {
private mySortedArray!: SortedArray;
constructor() {
this.mySortedArray = new SortedArray();
}
}
但是,我得到了这个错误:Cannot use namespace 'SortedArray' as a type.ts(2709)
我创建了这个文件:
// src/typings/sorted-array/index.d.ts
declare module 'sorted-array' {
class SortedArray {
constructor(arr: number[]);
search(element: any): number;
}
}
然而,错误仍然存在。我做错了什么?
5条答案
按热度按时间lvjbypge1#
可以使用
typeof
关键字将空间转换为类型。biswetbf2#
我一直在努力弄清楚如何编写一个类型定义来传递外部/第三方模块。我对TypeScript既不明智也不敏锐,但TypeScript 2.9的
import()
语法似乎是我正在寻找的答案(经过长时间的摸索,被误导):现在我可以写我的:
看起来您希望使用默认导出。也许对你来说,这可能会起作用。
4si2a6ki3#
您需要在模块声明中导出它:
wooyq4lh4#
如果你想导入的是第三方命名空间内部的有效接口/类型,你可能会得到这个错误。
例如,如果您的第三方库看起来像这样:
在这种情况下,您的声明可以简单一点。
你可以这样使用它:
mgdq6dx15#
您可以使用以下命令导入类型:
import { SortedArray } from 'sorted-array';