我有一个用TypeScript编写的,具有自定义类型的项目,正在使用import语句将其导入到我的.ts
模块中:
import { MyCoolInterface } from './types'
当我使用tsc构建项目时,我得到了一个声明文件index.d.ts
和index.js
,并且我的键入内容没有与tsc生成的内容连接在一起。 tsc只是将字符串import { MyCoolInterface } from './types'
复制到生成的声明文件中,显然在我的 dist 目录中找不到该字符串,因此键入似乎已损坏。有没有办法将我自己的自动生成的类型连接到一个文件中?
我的index.d.ts
:
export interface UmbressOptions {
isProxyTrusted?: boolean
rateLimiter?: {
enabled?: boolean
requests?: number
per?: number
banFor?: number
}
clearQueueAfterBan?: boolean
logs?: boolean
whitelist?: Array<string>
blacklist?: Array<string>
checkSuspiciousAddresses?: {
enabled?: boolean
token?: string
action?: 'block' | 'check'
banFor?: number
cookieTtl?: 1
}
advancedClientChallenging?: {
enabled: boolean
cookieTtl?: number
content?: string
userAgentsWhitelist?: RegExp
cache?: 'redis'
cacheHost?: string
cachePort?: number
}
}
与tsc生成的index.d.ts
合并:
/// <reference types="ioredis" />
/// <reference types="express" />
/// <reference types="pug" />
declare module 'abuseipdb' {
import { UmbressOptions } from './types' // <------------ Import or export declaration in an ambient module declaration cannot reference module through relative module name.ts(2439)
import { Redis } from 'ioredis'
export function checkAddress(ip: string, options: UmbressOptions, redis: Redis, jailKey: string): Promise<void>
}
答案 0 :(得分:1)
将您的typings.d.ts
文件更改为typings.ts
。创建内部版本时,Typescript会忽略.d.ts
个文件。对于Typescript,所有.d.ts
都只是类型声明,对javascript没有用。希望对您有帮助!