无法在Typescript中使用js文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在Typescript中使用js文件相关的知识,希望对你有一定的参考价值。
我正在尝试在Angular应用程序中使用Three.js.
要导入三,我只是跟着doc。所以我有这个:import * as THREE from 'three';
我也做了npm install @types/three --save
。
当我尝试使用OBJLoader2使用我的模型时出现问题
首先,医生说使用var loader = new THREE.OBJLoader2();
。但实际上,THREE.OBJLoader2没有在'three'
中定义,它在three/examples/js/loaders/OBJLoader2.js
中定义,正如我在the official example中找到的那样。
所以,我尝试以多种方式导入此文件,但我无法使其工作。我天真地尝试以这种方式导入文件:import ../../node_modules/three/examples/js/loaders/OBJLoader2.js';
它正在编译但我在导航器中有这个错误
OBJLoader2.js:8未捕获的ReferenceError:未在eval(OBJLoader2.js:8)处定义对象... / .. / .. / .. / three / examples / js / loaders / OBJLoader2.js(供应商。 bundle.js:430)
该文件如下所示:
'use strict';
if ( THREE.OBJLoader2 === undefined ) { THREE.OBJLoader2 = {} }
THREE.OBJLoader2 = (function () { ... })()
它接受THREE全局定义,但TREE只存在于我的组件中,所以我理解错误。
在导入文件之前,我还尝试声明三:
declare var THREE;
要么
declare global{
interface Window{THREE:any;}
}
import * as THREE from 'three';
window.THREE = THREE;
最后一个代码使错误消失,但是当我尝试使用加载器时
var loader = THREE.OBJLoader2();
loader.load('assets/untitled1.obj', callbackOnLoad, null, null, null, false);
我懂了 :
错误TypeError:无法在AppComponent.initCube上读取未定义的属性'load'(app.component.ts:52)
所以我被困在这里,我在互联网上找不到任何东西,相信没有人试图在Typescript中使用three.js导入模型。
任何帮助将不胜感激。非常感谢你提前
我没试过,但看起来https://bountify.co/angular-cli-three-js-blank-project-using-typescript-3有一个解决方案
我相信重点是:
- npm安装三个--save
- npm install @ types / three --save-dev
- 从'三'进口*为三
听起来你已经在做#1和#2了
以上是关于无法在Typescript中使用js文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 getStaticProps 获取数据 Next.js 和 Typescript
使用 TypeScript 在 Node.js 中进行 Sequelize - 没有“new”就无法调用类构造函数模型
如何使用 typescript 在外部 js 文件中调用函数
Webpack 4,Vue 同时使用 Typescript 类和 JS 代码。