注意:我知道有很多关于这个主题的帖子,我已经审阅了相当多的没有成功(请看我在这篇文章底部的参考资料)。
我正试图使用Visual Studio代码在TypeScript中运行一个非常简单的测试,其中我在一个文件中声明一个类并将其导入到另一个文件中。但是,我仍然遇到一个问题,我正在导入的文件无法识别我从另一个文件导出的类的方法。
此时我收到的确切错误消息是:
[ts]属性“Get FirstName”在类型“typeof”module-test/src/otherClass“”上不存在。
[ts]属性“Get LastName”在类型“typeof”module-test/src/otherClass“”上不存在。
我使用的是Node 9.3.0和TypeScript 2.6.2。
非常感谢任何人为我提供的任何指导!
Main.TS
import * as Other from "./OtherClass";
class myApp
{
public async start()
{
console.log("Starting application");
try
{
let firstName = await Other.getFirstName();
console.log("First Name: " + firstName);
let lastName = await Other.getLastName();
console.log("Last Name: " + lastName);
}
catch (error)
{
console.error("Unable to get name: " + error)
}
console.log("Ending application");
}
}
const app = new myApp();
app.start();
null
OtherClass.ts
null
class Other
{
getFirstName(): string
{
return "John";
}
getLastName(): string
{
return "Doe";
}
}
export { Other };
null
我尝试过的事情
null
export class Other
{
getFirstName(): string
{
return "John";
}
getLastName(): string
{
return "Doe";
}
}
null
null
class Other
{
export function getFirstName(): string
{
return "John";
}
export function getLastName(): string
{
return "Doe";
}
}
null
null
module.exports = Other;
export { Other };
export * from "OtherClass";
null
null
import * as Other from "./OtherClass";
import { Other } from "./OtherClass";
null
配置文件package.json
null
{
"name": "module-test",
"version": "1.0.0",
"description": "Simple test of exporting and importing modules",
"main": "./lib/main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "John Doe",
"license": "ISC",
"dependencies": {
"typescript": "^2.6.2"
},
"devDependencies": {
"@types/node": "^8.5.2",
"@types/typescript": "^2.0.0"
}
}
null
tsconfig.json
null
{
"compilerOptions": {
/* Basic Options */
"target": "es2016", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"outDir": "./lib/", /* Redirect output structure to the directory. */
"strict": true, /* Enable all strict type-checking options. */
"inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
"inlineSources": true /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
}
}
null
引用的文章
从哪里开始?这是许多编辑远离一个有效的程序;您可能应该从一个工作示例开始,因为您想要这段代码做什么还不是100%清楚。
您创建了一个具有单个命名导出的模块,即类other
。
export { Other };
然后导入周围的模块对象:
import * as Other from "./OtherClass";
在导入文件中,类现在具有名称other.other
。但是在代码中,您并没有实际使用new
实例化类!所以在这里
let firstName = await Other.getFirstName();
你需要写
const oth = new Other.Other();
当然,这看起来很傻。更改import语句(不要有多个!)至
import { Other } from "./OtherClass";
现在你可以写了
const oth = new Other();
继续往前走,我们写
let firstName = await oth.getFirstName();
只不过getfirstname
不是一个异步函数,所以您应该真正编写
let firstName = oth.getFirstName();
问题内容: 有人可以为我提供关于类对象的一些指导,以及如何在我的项目中的另一个对象中引用它吗? 这是我的对象-request-api.js(注意:我知道它还没有进行很多操作,但是我想走路之前要走路) 这是我试图在其中引用的React Class组件: 我的React Component Class对象出现错误: 谁能为我提供一些见识/帮助? 问题答案: 由于不是静态方法,因此您需要先创建的实例,然
问题内容: 如何设置模块导入,以便每个模块都可以访问其他所有模块的对象? 我有一个中等大小的Python应用程序,在各个子目录中都有模块文件。我使用创建了将这些子目录附加到模块并导入一组模块的模块。使用该限定条件引用模块对象。然后,我使用将该模块导入其他模块。现在的代码草率,其中有几处通常是重复的。 首先,应用程序失败,因为未分配某些模块引用。单元测试时,会运行相同的代码。 其次,我担心递归模块导
模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(
我正在尝试导入一个jar文件。我的文件“test.java”包含一行: 注意:我使用的是Mac电脑。
尝试以这种方式导出socket.io时,获取错误。 我的tsconfig.client.json文件具有以下设置:
我试图通过手动将图像拖到eclipse或导入来解决这个问题。但正如下图所示,这些图像总是碰巧是一个文本文件。请帮忙! 放大,你可以看到导入的图像是一个文本文件,在这里输入图像描述 当我打开它: 在此输入图像描述