创建我自己的函数,但是一旦我导入了在另一个文件中创建的模块,当我已经导出了该函数所在的类时,它将出错。
我已经尝试了很多类似的问题,但是似乎没有用……也许只是我的开发环境
chiFunctions.ts
export class ChiFunctions {
public Arrivederci() {
const time: moment().format('MMMM Do YYYY, h:mm:ss a');
let statements: string[] = ['good-night', 'Good Morning','Good-afternoon'];
if (time > '12:00:00 pm')
return statements[1];
else if (time < '12:00:00 pm')
return statements[2];
}
}
chiListener.ts
import { Arrivederci } from 'utils/chiFunctions'; // Here is the error
应该发生什么
console.log(`${Arrivederci}`);
输出
Good-afternoon
答案 0 :(得分:2)
您的代码有两个问题:
您需要执行以下操作才能使当前代码正常工作:
import { ChiFunctions } from 'utils/chiFunctions';
const functions = new ChiFunctions();
console.log(`${functions.Arrivederci()}`);
您可以使用static method使其更加简洁,而无需创建ChiFunctions
类的实例就可以调用它,但这仍然有些混乱。
尽管使用C#和Java这样的语言,所有内容都必须包装在类中,但是JavaScript / TypeScript中没有这种限制-您可以通过仅从chiFunctions
文件中导出函数来删除很多样板:
export function Arrivederci() {
const time: moment().format('MMMM Do YYYY, h:mm:ss a');
let statements: string[] = ['good-night', 'Good Morning','Good-afternoon'];
if (time > '12:00:00 pm')
return statements[1];
else if (time < '12:00:00 pm')
return statements[2];
}
然后您可以这样做:
import { Arrivederci } from 'utils/chiFunctions';
console.log(`${Arrivederci()}`);
几乎完全是您的原始代码,只是固定了语法,以便调用该函数!