typescript - 我将如何解决“没有导出的成员”
问题描述
创建我自己的函数,但是一旦我导入我在另一个文件中创建的模块,它就会出错,而我已经导出了函数所在的类。
我已经尝试了很多与我类似的问题,但它似乎不起作用......也许它只是我的开发环境
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
解决方案
您的代码有两个问题:
- 您正在导出类,而不是函数。
- 您实际上并没有调用该函数。
您需要执行以下操作才能使当前代码正常工作:
import { ChiFunctions } from 'utils/chiFunctions';
const functions = new ChiFunctions();
console.log(`${functions.Arrivederci()}`);
您可以通过使用静态方法使其更简洁,无需创建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()}`);
这几乎完全是您的原始代码,只是语法固定以便调用函数!
推荐阅读
- powerbi - 如何根据两个过滤器对数据库进行汇总?
- r - 将数据框作为R中的一个列表
- c++ - 变量名可以与 C++ 中的函数名相同吗?
- java - 使用 Spring Boot Data JPA 按需创建表
- c - 将字符串数组作为参数传递给函数
- php - 如何获取 php lararavel 中的总运行余额列?
- javascript - 类中的 jQuery 脚本问题
- couchdb - OpenWhisk“动作调用”返回带有签名的问题
- c# - 正则表达式匹配文本不包含给定列表中的任何(多个)单词
- python - Python 和 Selenium:无法找到要单击的特定 (href) 元素