我对TypeScript非常陌生,我试图在其中进行自动化测试--将IndexedDB注入到代码中,但是我用来模拟IDB的库没有.d.ts,所以我尝试滚动自己的简单声明文件来绕过这个问题,如下所示:
declare let fakeIndexedDB: IDBFactory;
declare module 'fake-indexeddb' {
export var fakeIndexedDB;
}
然而,当我尝试使用这种类型时,我得到了错误:
type 'typeof import("fake-indexeddb")' is missing
我正在尝试导入一个没有类型或可安装包的外部JavaScript库。插件是:。我想从该插件导入三个类:JpegCamera、JpegCameraHTML5和Snapshot。在一些教程的帮助下,我能够将这三个类及其接口导出到一个.d.ts文件中。.d.ts文件类似于:。
declare module Camera {}
export class JpegCamera {...}
export class JpegCameraHTML5 {...}
export class Snapshot {...}
现在,我不知道如何在插件源文件(.js)、我自己的.d.ts文件和要导入这三个类的typesc
我们正在使用一个节点包,它提供CommonJS和ESM导出以及类型。
由于原因,我们需要通过直接指向ESM来导入模块。但是,TypeScript无法在新路径上找到类型声明。
// import { SomePackage } from 'somepackage' // <- unfortunately not an option right now
import { SomePackage } from 'somepackage/dist/somepackage.esm'
找不到模块‘somepackage/dist/soepackage.esm’的声明文
我使用的是 (v1.8.0.v20160223-1645),只要我的d.ts文件位于同一个源文件夹/src 中,但是由于JSPM它们位于另一个文件夹中,并且无法找到和导入模块,它就能正常工作:
/src <-- My .ts files are here (no js here)
/dist <-- This is where the transpiled js ends up
/jspm_packages/npm <-- External d.ts files are here
我有一些用css模块和手写笔组合编译的styles.istyl文件,用的是webpack。如果没有d.ts文件,TypeScript将无法识别它,并发出file is not a module错误。
同时,我为每个这样的文件创建了一个.d.ts文件,如下所示:
declare var whatever: any;
export default whatever;
来消除错误,但这很乏味(我们有几十个这样的文件)。
是否可以告诉TypeScript,如果一个文件匹配*.istyl (或任何其他任意模式),则禁用检查该文件是否为模块?
我正在制作使用AWS SDK的TypeScript库,在.d.ts文件中有一个错误。 'MyLib' only refers to a type, but is being used as a namespace here. ts(2702) 我使用typescript@3.2.4,在tsconfig.json中将types/赋值给typeRoots。我尝试将import移到名称空间定义中,但没有解决。 types/src/lib/mylib.d.ts import { S3 } from "aws-sdk";
declare namespace MyLib
在TypeScript中,假设我想让用户使用我的模块的“内部”类型,这样他们就可以在使用我的模块时正确地键入自己的变量--我是否只需要从我的index.ts文件中导出所有内容来实现这一点?
// index.ts
export * from './file1' // uses types/interfaces defined in file1types
export * from './file2' // uses types/interfaces defined in file2types
export * from './types/file1ty