如何将其他类型导入 typescript .d.ts 模块
How to import other types in to a typescript .d.ts module
我有一个自定义 .d.ts
外部模块文件,看起来像
declare module 'vertices-bounding-box' {
export default function boundingBox(positions: [number,number,number][]): [number, number]
}
而不是 [number,number,number]
我想使用来自另一个模块的类型,例如:
import { vec3 } from 'gl-matrix';
declare module 'vertices-bounding-box' {
export default function boundingBox(positions: vec3[]): [number, number]
}
TSC 在我为 vec3
添加导入语句时抱怨说:
Invalid module name in augmentation. Module 'vertices-bounding-box' resolves to an untyped
module at '/Users/kevzettler/code/hypeworks/node_modules/vertices-bounding-box/index.js', which cannot be augmented. [2665]
您刚刚在 TypeScript 中展示了 import types 最普遍的用例:
Modules can import types declared in other modules. But non-module global scripts cannot access types declared in modules. Enter import types.
换句话说,此语言功能允许从全局范围中导入外部模块'gl-matrix'
的类型你的项目 .d.ts
文件是这样的:
// ext-module.d.ts, important: don't use ES import statement here
declare module 'vertices-bounding-box' {
export default function boundingBox(
positions: Array<import("gl-matrix").vec3>): [number, number]
}
注意:没有 ES 的文件 import
/export
是全局脚本而不是模块。
'vertices-bounding-box'
没有自己的类型,因此需要在 全局脚本文件 中声明这些类型,如上所示。
对于某些情况,如果你想 extend already existing types 就像来自 DefinitelyTyped / @types
,你会保留 top-level ES import
import { vec3 } from 'gl-matrix';
// ...
在此文件中,因为模块扩充需要 模块。
我有一个自定义 .d.ts
外部模块文件,看起来像
declare module 'vertices-bounding-box' {
export default function boundingBox(positions: [number,number,number][]): [number, number]
}
而不是 [number,number,number]
我想使用来自另一个模块的类型,例如:
import { vec3 } from 'gl-matrix';
declare module 'vertices-bounding-box' {
export default function boundingBox(positions: vec3[]): [number, number]
}
TSC 在我为 vec3
添加导入语句时抱怨说:
Invalid module name in augmentation. Module 'vertices-bounding-box' resolves to an untyped
module at '/Users/kevzettler/code/hypeworks/node_modules/vertices-bounding-box/index.js', which cannot be augmented. [2665]
您刚刚在 TypeScript 中展示了 import types 最普遍的用例:
Modules can import types declared in other modules. But non-module global scripts cannot access types declared in modules. Enter import types.
换句话说,此语言功能允许从全局范围中导入外部模块'gl-matrix'
的类型你的项目 .d.ts
文件是这样的:
// ext-module.d.ts, important: don't use ES import statement here
declare module 'vertices-bounding-box' {
export default function boundingBox(
positions: Array<import("gl-matrix").vec3>): [number, number]
}
注意:没有 ES 的文件 import
/export
是全局脚本而不是模块。
'vertices-bounding-box'
没有自己的类型,因此需要在 全局脚本文件 中声明这些类型,如上所示。
对于某些情况,如果你想 extend already existing types 就像来自 DefinitelyTyped / @types
,你会保留 top-level ES import
import { vec3 } from 'gl-matrix';
// ...
在此文件中,因为模块扩充需要 模块。