我需要根据自己的需要自定义现有的@types/three
。
我克隆了@types/three
和src/typings
中的整个npm rm @types/three
。 tsconfig.json
同时查看node_modules/@types
和src/typings
但是,声明模块不会解析为“3”。
以下是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文件?
答案 0 :(得分:2)
嗯,你已经弄清楚了大部分内容。您最有可能还没有完成更新您的tsconfig。您需要明确设置typescript编译器可以找到自己的类型的位置。
将此添加到tsconfig.json:
"paths": {
"*": [
"node_modules/*",
"src/typings/*"
]
},