typescript - 如何将 date-fns 与 TypeScript 一起使用?

标签 typescript date-fns

我有一个带有 TypeScript 的 ASP.NET Core 网站。我的 ASP.NET Core 设置很典型,因为它在项目的根目录中有一个 node_modules 文件夹,然后我从 node_modules 复制我正在使用的库的源文件夹> 使用 Gulp 到 wwwroot/lib

因此,我在 wwwroot/lib/date-fns 和我的 TypeScript .ts 文件中有 date-fns 源文件,我正尝试像这样导入它:

import * as fns from "lib/date-fns/i.am.stuck.here.js";

VS2019 代码编辑器正在自动完成文件夹,因此它可以看到它,但我不知道要输入什么 .js 文件,它没有提示。

我也不知道我是否应该导入 * 或其他东西。我不是前端开发人员,所以我在 TS 和 JS 以及导入和要求等方面苦苦挣扎。

我可以看到 date-fns 有一个 typings 文件,所以我认为这对于知情人士来说是直截了当的。


更新:

我发现了这个:

https://github.com/date-fns/date-fns/blob/master/examples/typescript/example.ts

这很奇怪,因为将我的代码更新到下面,这是在编辑器读取磁盘上的文件夹时自动建议的:

import { format } from "lib/date-fns";

给我一​​个错误:

error TS2307: Cannot find module 'lib/date-fns' or its corresponding type declarations.

当我导入 moment.js 时,我将其指向自动建议的 .js 文件本身。

此外,如果我更改为 'lib/date-not-exist' 我会得到同样的错误,所以我无法判断这是文件路径存在问题还是 TypeScript 定位模块问题。


更新:

我可以让 TypeScript 消除错误并大概找到一个模块:

import * as dformat from "lib/date-fns/format/index";

但这行不通,因为:

var result = dformat(date, 'dd.MM.yyy HH:mm:ss');

给出错误:

error TS2349: This expression is not callable.

最佳答案

请参阅我在 Import a JavaScript module or library into TypeScript 中的回答如果您通常在浏览器中使用 TypeScript 和 JavaScript 导入模块时遇到问题。

关于typescript - 如何将 date-fns 与 TypeScript 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67840725/

相关文章:

javascript - Angular 2 中基于单选按钮禁用输入字段

javascript - typescript 生成冗余变量

javascript - 如何使Typescript识别递归类型而不落在字符串上

javascript - date-fns 中的什么方法相当于 moment().toISOString()

javascript - 如何使用 mysql 提供的日期获取 "time ago"?

node.js - Nest 无法解析 AuthGuard(Guard 装饰器)的依赖关系

Angular 13 Prerender 错误找不到主包

Javascript date-fns 更具体的 distanceInWords

angular - Material 日期-fns 适配器