如何为未类型化的 npm 模块制作一组自定义的 d.ts 文件?
How can I make a custom set of d.ts files for an untyped npm module?
我需要根据需要自定义现有的 @types/three
。
我在 src/typings
和 npm rm @types/three
中克隆了整个 @types/three
。 tsconfig.json
同时查看 node_modules/@types
和 src/typings
但是,声明模块没有解析为'three'。
这里是 typings/three/index.d.ts
:
export * from "./three-core";
export * from "./three-canvasrenderer";
export * from "./three-colladaLoader";
export * from "./three-copyshader";
export * from "./three-css3drenderer";
export * from "./three-ctmloader";
export * from "./three-ddsloader";
export * from "./three-editorcontrols";
export * from "./three-effectcomposer";
export * from "./three-examples";
export * from "./three-fbxloader";
export * from "./three-FirstPersonControls";
export * from "./three-maskpass";
export * from "./three-mtlloader";
export * from "./three-objloader";
export * from "./three-octree";
export * from "./three-orbitcontrols";
export * from "./three-orthographictrackballcontrols";
export * from "./three-outlinepass";
export * from "./three-projector";
export * from "./three-renderpass";
export * from "./three-shaderpass";
export * from "./three-smaapass";
export * from "./three-trackballcontrols";
export * from "./three-transformcontrols";
export * from "./three-vrcontrols";
export * from "./three-vreffect";
// export * from "./three-gltfloader";
export declare module 'three';
// [ts] 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
// AND
// [ts] Invalid module name in augmentation. Module 'three' resolves to an untyped module at '/Users/abc_user/Desktop/abc_project/node_modules/three/build/three.js', which cannot be augmented.
// export as namespace THREE;
// This has no errors but does not resolve to 'three, meaning when I import * as THREE from 'three', ts says no declaration file exists.
所以问题是:如何为未类型化的 npm 模块制作一组自定义的 d.ts 文件?
好吧,您已经了解了其中的大部分内容。您很可能还没有完成的是更新您的 tsconfig。您需要明确设置打字稿编译器可以在何处找到您自己的打字。
将此添加到您的 tsconfig.json:
"paths": {
"*": [
"node_modules/*",
"src/typings/*"
]
},
我需要根据需要自定义现有的 @types/three
。
我在 src/typings
和 npm rm @types/three
中克隆了整个 @types/three
。 tsconfig.json
同时查看 node_modules/@types
和 src/typings
但是,声明模块没有解析为'three'。
这里是 typings/three/index.d.ts
:
export * from "./three-core";
export * from "./three-canvasrenderer";
export * from "./three-colladaLoader";
export * from "./three-copyshader";
export * from "./three-css3drenderer";
export * from "./three-ctmloader";
export * from "./three-ddsloader";
export * from "./three-editorcontrols";
export * from "./three-effectcomposer";
export * from "./three-examples";
export * from "./three-fbxloader";
export * from "./three-FirstPersonControls";
export * from "./three-maskpass";
export * from "./three-mtlloader";
export * from "./three-objloader";
export * from "./three-octree";
export * from "./three-orbitcontrols";
export * from "./three-orthographictrackballcontrols";
export * from "./three-outlinepass";
export * from "./three-projector";
export * from "./three-renderpass";
export * from "./three-shaderpass";
export * from "./three-smaapass";
export * from "./three-trackballcontrols";
export * from "./three-transformcontrols";
export * from "./three-vrcontrols";
export * from "./three-vreffect";
// export * from "./three-gltfloader";
export declare module 'three';
// [ts] 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
// AND
// [ts] Invalid module name in augmentation. Module 'three' resolves to an untyped module at '/Users/abc_user/Desktop/abc_project/node_modules/three/build/three.js', which cannot be augmented.
// export as namespace THREE;
// This has no errors but does not resolve to 'three, meaning when I import * as THREE from 'three', ts says no declaration file exists.
所以问题是:如何为未类型化的 npm 模块制作一组自定义的 d.ts 文件?
好吧,您已经了解了其中的大部分内容。您很可能还没有完成的是更新您的 tsconfig。您需要明确设置打字稿编译器可以在何处找到您自己的打字。
将此添加到您的 tsconfig.json:
"paths": {
"*": [
"node_modules/*",
"src/typings/*"
]
},